home *** CD-ROM | disk | FTP | other *** search
/ Software of the Month Club 2000 October / Software of the Month - Ultimate Collection Shareware 277.iso / pc / PROGRAMS / UTILITY / WINLINUX / DATA1.CAB / programs_-_usrdoc / ISAPNPTO.{13 / ISAPNPFA.{_A < prev    next >
Text File  |  1999-09-17  |  88KB  |  2,083 lines

  1.   FAQ for isapnptools
  2.   $Author: fox $
  3.   $Date: 1999/02/14 22:43:57 $
  4.  
  5.   Answers to Frequently Asked Questions about isapnptools. $Revision:
  6.   0.9 $
  7.   ______________________________________________________________________
  8.  
  9.   Table of Contents
  10.  
  11.   1. General
  12.  
  13.      1.1 Where can I get the latest FAQ ?
  14.      1.2 What do isapnptools do ?
  15.      1.3 How do I use isapnptools to configure my ISA PnP cards ?
  16.      1.4 Who wrote/maintains isapnptools ?
  17.      1.5 What is the latest version, and where can I get it from ?
  18.      1.6 What about security ?
  19.      1.7 Can isapnptools be used to configure PCI hardware.
  20.      1.8 Is there a version of isapnptools for PCI ?
  21.      1.9 NT,WIN95,...  works ok now, will running isapnp screw it up ?
  22.      1.10 Isn't there a better way to configure PnP cards ?
  23.      1.11 How do I find out if my card is supported ?
  24.      1.12 Where can I find out more ?
  25.      1.13 My card works, but it's not in the Hardware-HOWTO (appendix C).
  26.  
  27.   2. General - Fundamentals
  28.  
  29.      2.1 What is a driver (module) ?
  30.      2.2 What is a logical device ?
  31.  
  32.   3. General - Compilation/installation
  33.  
  34.      3.1 I get lots of link errors
  35.      3.2 I've got the binary distribution and the binaries won't run.
  36.         3.2.1 Linux
  37.         3.2.2 DOS
  38.      3.3 Problems compiling for 2.1.x kernels
  39.      3.4 I've upgraded my library/C-compiler and now have problems compiling the programs.
  40.      3.5 Can isapnptools be used with operating systems other than Linux.
  41.      3.6 What do I do if I think I've found a bug or got some other problem ?
  42.  
  43.   4. General - Running
  44.  
  45.      4.1 Which kernel do I need ?
  46.      4.2 I get "Permission denied" when trying to run the programs.
  47.      4.3 The program crashes with a "Segmentation fault"
  48.      4.4 Where can I get example configuration files ?
  49.      4.5 How can I find out how the card is configured ?
  50.      4.6 Isapnp fails with error "Error occurred executing request 'ISOLATE' on or around line 13 --- further action aborted"
  51.      4.7 What is a good readport address to use ?
  52.      4.8 Pnpdump doesn't find all the PnP boards in the system.
  53.      4.9 Pnpdump cannot see the boards after using the -r option.
  54.      4.10 Pnpdump reports "No boards found"
  55.      4.11 What does "Error occurred executing request 'LD 2' on or around line..." mean ?
  56.      4.12 What does "End tag checksum 0xb8 (BAD)" mean (in the pnpdump output) ?
  57.      4.13 What does "IO range check attempted while device activated" mean (from isapnp) ?
  58.      4.14 What does "IO range check failed for n bytes of IO at addr" mean (from isapnp) ?
  59.      4.15 I think I've configured the board correctly, but the driver still can't find it.
  60.      4.16 What does "/proc/bus/pci/devices not found, so PCI resource conflict not checked" mean ?
  61.      4.17 Is there a graphical interface available ?
  62.  
  63.   5. General - Kernel/Driver issues
  64.  
  65.      5.1 Do I need to configure CONFIG_PNP in the kernel ?
  66.      5.2 I've configured my ... using isapnptools, but the kernel doesn't recognise it.
  67.      5.3 I get the error message "... module support already loaded" when trying to load the ... module.
  68.      5.4 I'm having trouble getting interrupts to work.
  69.      5.5 I've configured the card, but /proc/interrupts still shows the interrupt as unused.
  70.      5.6 The driver for my card cannot be built as a module.
  71.      5.7 As soon as I run isapnp, my machine locks up.
  72.      5.8 How can I stop
  73.  
  74.   6. Upgrading
  75.  
  76.      6.1 I've upgraded isapnptools from my favourite distribution and it has wiped out my
  77.      6.2 What should I do to upgrade isapnptools.
  78.  
  79.   7. Resources
  80.  
  81.      7.1 Determining resource usage (linux).
  82.      7.2 I've got a ..., which runs fine under Win95, how can I find out the port settings ?
  83.      7.3 Examining Win95 resource settings.
  84.      7.4 The windows CTPNP.CFG file.
  85.      7.5 How can I prevent
  86.      7.6 Common problems
  87.      7.7 What does isapnp mean by "Fatal - resource conflict allocating DMA1".
  88.      7.8 Do I have to configure all the devices.
  89.  
  90.   8. Advanced usage.
  91.  
  92.      8.1 Common configurations on multiple machines, Version 1.11 and earlier.
  93.      8.2 Common configurations on multiple machines, Version 1.12 and later.
  94.      8.3 Sending a RESET CSN command.
  95.      8.4 Dumping the boards configuration registers.
  96.  
  97.   9. Soundcards.
  98.  
  99.      9.1 I've got an AWE32/AWE64, but Linux doesn't recognise it.
  100.         9.1.1 The output from pnpdump (before configuration).
  101.         9.1.2 The editted configuration file for isapnp.
  102.         9.1.3 An extract of the bootup script to configure sound.
  103.      9.2 Problems with the Aztech Sound Galaxy 16 III-3D PnP sound card.
  104.      9.3 CD sound doesn't work (one channel or no channels).
  105.      9.4 What to do about "sb: Interrupt test on IRQ10 failed - device disabled."
  106.  
  107.   10. Modems.
  108.  
  109.      10.1 General.
  110.      10.2 I've got a WinModem, and I've followed all the instructions, but it still doesn't work.
  111.      10.3 I've got a PCI modem - what about that ?
  112.      10.4 I've got a modem that works in DOS and Windows, but not Linux.
  113.      10.5 I've configured the device, but it is really SLOW.
  114.      10.6 I've configured the device, but it doesn't work.
  115.      10.7 What's this about not using /dev/cua1 ?
  116.      10.8 How can I check the modem is working ?
  117.      10.9 Thunderlink modems (PCT3880).
  118.      10.10 USR Robotics Sportster.
  119.  
  120.   11. Network cards.
  121.  
  122.      11.1 The card supports non PnP configuration.
  123.  
  124.   12. IDE ports.
  125.  
  126.   13. Disclaimers etc.
  127.  
  128.   ______________________________________________________________________
  129.  
  130.   11..  GGeenneerraall
  131.  
  132.   11..11..  WWhheerree ccaann II ggeett tthhee llaatteesstt FFAAQQ ??
  133.  
  134.   The latest FAQ is available from the isapnptools home website as a
  135.   text file <http://www.roestock.demon.co.uk/isapnptools/isapnpfaq.txt>,
  136.   a set of html files
  137.   <http://www.roestock.demon.co.uk/isapnptools/isapnpfaq.html.tar.gz>,
  138.   or in the sgml source
  139.   <http://www.roestock.demon.co.uk/isapnptools/isapnpfaq.sgml>.
  140.  
  141.   To see if the one on the website is newer, compare the revision with
  142.   the revision of this document.
  143.  
  144.   11..22..  WWhhaatt ddoo iissaappnnppttoooollss ddoo ??
  145.  
  146.   Isapnptools allow you to configure the ISA PnP cards complying with
  147.   the Plug and Play ISA Specification Version 1.0a, which may be
  148.   obtained from ftp://ftp.microsoft.com/developr/drg/Plug-and-
  149.   Play/Pnpspecs/ <ftp://ftp.microsoft.com/developr/drg/Plug-and-
  150.   Play/Pnpspecs/>.
  151.  
  152.   These boards use registers instead of jumpers to set the board
  153.   address, interrupt assignments etc (resource allocations). In
  154.   addition, the board contains a description of the resources that need
  155.   to be allocated, with limits on the settings allowable.
  156.  
  157.   The BIOS (or any other PnP configuration program such as Win95 or
  158.   isapnptools) uses a special protocol described in the specification to
  159.   discover all the PnP boards, and allocate the resources so that there
  160.   are no conflicts.
  161.  
  162.   Because the BIOS rarely does the job properly, it is better to get it
  163.   to do as little as possible, and use isapnptools to configure the
  164.   resource settings. This is not always possible with newer BIOSes, so
  165.   see also ``Pnpdump reports "No boards found"''.
  166.  
  167.   11..33..  HHooww ddoo II uussee iissaappnnppttoooollss ttoo ccoonnffiigguurree mmyy IISSAA PPnnPP ccaarrddss ??
  168.  
  169.   See the instructions in the INSTALL <INSTALL> file for the overall
  170.   process. See the various README files for examples and specific
  171.   details. See the FAQ too, particularly for sound cards.
  172.  
  173.   In the event of difficulties, see the FAQ first for answers.
  174.  
  175.   11..44..  WWhhoo wwrroottee//mmaaiinnttaaiinnss iissaappnnppttoooollss ??
  176.  
  177.   Peter Fox, with some help and suggestions from many others. See the
  178.   README <README>. Contributors with useful suggestions and improvements
  179.   may have their name and email address added to the README, if you
  180.   don't want this to happen, please tell me.
  181.  
  182.   11..55..  WWhhaatt iiss tthhee llaatteesstt vveerrssiioonn,, aanndd wwhheerree ccaann II ggeett iitt ffrroomm ??
  183.  
  184.   See the home site
  185.   <http://www.roestock.demon.co.uk/isapnptools/index.html>
  186.  
  187.   11..66..  WWhhaatt aabboouutt sseeccuurriittyy ??
  188.  
  189.   Isapnptools must be run as root, and should not be made setuid root.
  190.   The configuration files used, such as /etc/isapnp.conf and
  191.   /etc/isapnp.gone should be owned by, and writeable only by, root.
  192.  
  193.   This should minimize any interest in buffer overflow problems, as you
  194.   have to be root in the first place.
  195.  
  196.   In an attempt to prevent trojans being introduced into the isapnptools
  197.   programs, I maintain md5sums of all the files on my web site, see
  198.   md5.txt <http://www.roestock.demon.co.uk/isapnptools/md5.txt>
  199.   If you suspect the md5 sums have been tampered with, please tell me,
  200.   and I can check against the originals.
  201.  
  202.   md5sum is part of the GNU textutils package.
  203.  
  204.   If you are worried about security, I suggest you maintain isapnptools
  205.   my compiling from source. After doing an exhaustive check for trojans,
  206.   you can then simply produce diffs of the new version against the old
  207.   and check that.
  208.  
  209.   11..77..  CCaann iissaappnnppttoooollss bbee uusseedd ttoo ccoonnffiigguurree PPCCII hhaarrddwwaarree..
  210.  
  211.   No.
  212.  
  213.   11..88..  IIss tthheerree aa vveerrssiioonn ooff iissaappnnppttoooollss ffoorr PPCCII ??
  214.  
  215.   The nearest equivalent is pciutils. Have a look at freshmeat; see
  216.   http://freshmeat.net/news/1999/01/28/917541046.html for instance.
  217.  
  218.   11..99..  NNTT,,WWIINN9955,,......  wwoorrkkss ookk nnooww,, wwiillll rruunnnniinngg iissaappnnpp ssccrreeww iitt uupp ??
  219.  
  220.   No. isapnp <isapnp.8.html> only configures the cards for Linux. When
  221.   you reboot, the BIOS will restore the card's settings. Note that Win95
  222.   will carry out the function of the BIOS (in terms of locating and
  223.   configuring PnP boards) on PCs without a PnP BIOS.
  224.  
  225.   Having said that, you must be careful using the REG
  226.   <isapnp.conf.5.html#REG> and POKE <isapnp.conf.5.html#POKE> keywords
  227.   that you don't write to some register that corrupts the board resource
  228.   data. (The resource data is often in EEPROM, and can be written to by
  229.   suitable software to initialise it).  See also ``What does "End tag
  230.   checksum 0xb8 (BAD)" mean (in the pnpdump output) ?''.
  231.  
  232.   11..1100..  IIssnn''tt tthheerree aa bbeetttteerr wwaayy ttoo ccoonnffiigguurree PPnnPP ccaarrddss ??
  233.  
  234.   Well, I quite like isapnptools as it is predictable, and doesn't make
  235.   the kernel any bigger (but then, I may be slightly biased).
  236.  
  237.   However, you may want to check out a configuration manager for linux
  238.   which now supports 2.0.30: CM for linux <http://lucifer.hemmet.s-
  239.   hem.chalmers.se/~dwh>.
  240.  
  241.   You also might want to look at Tom Lees' kernel PnP suite at
  242.   <http://www-jcr.lmh.ox.ac.uk/~pnp/>, the files are in
  243.   <ftp.lmh.ox.ac.uk:/pub/linux/pnp/>.
  244.  
  245.   Work is underway to integrate PnP support into the kernel. See
  246.   http://www.cs.utwente.nl/~vanrein/vha/
  247.   <http://www.cs.utwente.nl/~vanrein/vha/>.  As this involves changing
  248.   all the drivers, it may take a while.
  249.  
  250.   There is a GUI interface to isapnptools, see ``Is there a graphical
  251.   interface available ?'' for more info.
  252.  
  253.   11..1111..  HHooww ddoo II ffiinndd oouutt iiff mmyy ccaarrdd iiss ssuuppppoorrtteedd ??
  254.  
  255.   Note that the following are ideas. Linux is a fast moving world, and
  256.   due to the age of this document, likely to be out of date. New
  257.   hardware is gaining support all the time.
  258.  
  259.   See the Harware-HOWTO.
  260.  
  261.   Check your linux distribution's hardware compatibility list.  For
  262.   example, Redhat 5.2's is at Redhat 5.2 support
  263.   <http://www.redhat.com/support/docs/rhl/intel/rh52-hardware-
  264.   intel-13.html>.
  265.  
  266.   Refer to the card vendor and manufacturer for Linux support
  267.   information. If they won't support linux, tell your friends, and tell
  268.   them you're telling your friends. Assuming you specified that the card
  269.   was for use with Linux, you should be able to change it without too
  270.   much trouble (having been sold a product unfit for purpose etc).
  271.  
  272.   See also ``Where can I find out more ?''
  273.  
  274.   See also the device specific sections of this FAQ below.
  275.  
  276.   11..1122..  WWhheerree ccaann II ffiinndd oouutt mmoorree ??
  277.  
  278.   A good place to find out more about PC hardware in general is the pc-
  279.   hardware-faq, regularly posted to the newsgroups:
  280.   comp.sys.ibm.pc.hardware.video, comp.sys.ibm.pc.hardware.comm,
  281.   comp.sys.ibm.pc.hardware.storage, comp.sys.ibm.pc.hardware.cd-rom,
  282.   comp.sys.ibm.pc.hardware.systems, comp.sys.ibm.pc.hardware.networking,
  283.   comp.sys.ibm.pc.hardware.chips, comp.sys.ibm.pc.hardware.misc,
  284.   comp.answers, news.answers.
  285.  
  286.   A good place to find out about Linux configuration etc are the HOWTOs
  287.   and mini-HOWTOS. These can be found on MetaLab
  288.   <ftp://MetaLab.unc.edu/pub/Linux/docs/HOWTO/> or from TSX-11
  289.   <ftp://tsx-11.mit.edu/pub/linux/docs/HOWTO/> or try http://www.linux-
  290.   howto.com/ <http://www.linux-howto.com/>.
  291.  
  292.   These are also normally supplied with standard Linux distributions.
  293.  
  294.   A more practical guide to using these tools (and fixing other
  295.   configuration problems) can be found on the SuSe Linux support
  296.   database. See /usr/doc/support-db/sdb_e/rb_isapnp.html
  297.   <file:/usr/doc/support-db/sdb_e/rb_isapnp.html> if you've installed
  298.   their database, or http://www.suse.de/ <http://www.suse.de/>.
  299.  
  300.   See if you can find any information/statements on the vendor websites.
  301.  
  302.   11..1133..  MMyy ccaarrdd wwoorrkkss,, bbuutt iitt''ss nnoott iinn tthhee HHaarrddwwaarree--HHOOWWTTOO ((aappppeennddiixx CC))..
  303.  
  304.   Tell the Hardware-HOWTO maintainer !
  305.  
  306.   22..  GGeenneerraall -- FFuunnddaammeennttaallss
  307.  
  308.   22..11..  WWhhaatt iiss aa ddrriivveerr ((mmoodduullee)) ??
  309.  
  310.   If you don't know what this is, I suggest you start by reading the
  311.   Kernel-HOWTO available from MetaLab
  312.   <ftp://MetaLab.unc.edu/pub/Linux/docs/HOWTO/Kernel-HOWTO> or from
  313.   TSX-11 <ftp://tsx-11.mit.edu/pub/linux/docs/HOWTO/Kernel-HOWTO>, or
  314.   from their respective mirrors.  See also www.linux-howto.com
  315.   <http://www.linux-howto.com/>.
  316.  
  317.   22..22..  WWhhaatt iiss aa llooggiiccaall ddeevviiccee ??
  318.  
  319.   The functionality of a card is split into many different logical
  320.   devices for convenience. The idea is that each logical device is
  321.   independent and has it's own driver.
  322.  
  323.   This way, the user can decide to use as much or as little of the card
  324.   functionality as required, and also allows common drivers for many
  325.   different boards (the drivers being written for each logical device
  326.   function).
  327.  
  328.   So for example a soundcard will typically have at least four different
  329.   logical devices:
  330.  
  331.   1. The basic soundcard
  332.  
  333.   2. Soundcard extensions such as wave table
  334.  
  335.   3. A game port
  336.  
  337.   4. A CD-rom port.
  338.  
  339.   The logical devices are numbered starting from 0, incrementing by 1.
  340.   The first entry in the resource data applies to logical device 0, the
  341.   next to logical device 1, and so on.
  342.  
  343.   Each logical device has its own set of resources ( IO
  344.   <isapnp.conf.5.html#IO> addresses, INT
  345.   <isapnp.conf.5.html#INT>errupts, DMA <isapnp.conf.5.html#DMA> channels
  346.   etc) to program, and isapnp <isapnp.8.html> uses the LD
  347.   <isapnp.conf.5.html#LD> command to select the logical device to be
  348.   configured.
  349.  
  350.   33..  GGeenneerraall -- CCoommppiillaattiioonn//iinnssttaallllaattiioonn
  351.  
  352.   33..11..  II ggeett lloottss ooff lliinnkk eerrrroorrss
  353.  
  354.   Linking gives loads of errors such as
  355.  
  356.        pnpdump.o: In function `dumpdata':
  357.        pnpdump.o(.text+0x11b0): undefined reference to `__outbc'
  358.        pnpdump.o(.text+0x11c4): undefined reference to `__outb'
  359.        pnpdump.o(.text+0x11db): undefined reference to `__outbc'
  360.        pnpdump.o(.text+0x11ef): undefined reference to `__outb'
  361.        pnpdump.o(.text+0x1374): undefined reference to `__outbc'
  362.        pnpdump.o(.text+0x1388): undefined reference to `__outb'
  363.  
  364.   Chances are the -O2 compiler option is missing.
  365.  
  366.   33..22..  II''vvee ggoott tthhee bbiinnaarryy ddiissttrriibbuuttiioonn aanndd tthhee bbiinnaarriieess wwoonn''tt rruunn..
  367.  
  368.   33..22..11..  LLiinnuuxx
  369.  
  370.   If you get messages such as:
  371.  
  372.        bash: ./sbin/pnpdump: No such file or directory
  373.  
  374.   or
  375.  
  376.        bash: ./isapnp: No such file or directory.
  377.  
  378.   when attempting to run the precompiled binaries, then chances are you
  379.   haven't got the required C libraries.
  380.  
  381.   To check this, change to the sbin directory and type
  382.  
  383.        ldd pnpdump
  384.        ldd isapnp
  385.  
  386.   You should get something like
  387.  
  388.                libc.so.5 => /lib/libc.so.5
  389.  
  390.   for each one. If you get "not found" then you will have to recompile.
  391.   Note that the precompiled binaries in my binary distributions are
  392.   compiled for libc5. If you want binaries for glibc systems, Redhat 5.2
  393.   on, Suse 6.0 on etc, you'll have to go elsewhere (probably to your
  394.   distribution's web site).
  395.  
  396.   The best thing to do is to delete the binaries in the distribution and
  397.   try to compile your own anyway.
  398.  
  399.   33..22..22..  DDOOSS
  400.  
  401.   If you get a complaint along the lines of cannot find DPMI, then you
  402.   need to get hold of a DPMI host software. See the FAQ on the DJGPP
  403.   site <http:://www.delorie.com/djgpp> for details (follow the path
  404.   through Running --- Distributing).  This is most likely to occur on a
  405.   pure DOS machine. Win95 for example includes a DPMI host.
  406.  
  407.   The free DPMI server (cwsdpmi) is normally part of the djgpp
  408.   distribution. For example, my ISP mirrors it in the
  409.   <ftp://ftp.demon.co.uk/pub/mirrors/coast/vendors/djgpp/v2misc/> and
  410.   <ftp://ftp.demon.co.uk/pub/mirrors/simtelnet/gnu/djgpp/v2misc/>
  411.   directories.
  412.  
  413.   33..33..  PPrroobblleemmss ccoommppiilliinngg ffoorr 22..11..xx kkeerrnneellss
  414.  
  415.   The latest kernels (2.1.7x ish) have problems with the header files.
  416.   If you are playing with these kernels, you really ought to know how to
  417.   fix this yourself. I've been told that adding a -D__KERNEL__ to the
  418.   Makefile fixes it.
  419.  
  420.   33..44..  II''vvee uuppggrraaddeedd mmyy lliibbrraarryy//CC--ccoommppiilleerr aanndd nnooww hhaavvee pprroobblleemmss ccoomm--
  421.   ppiilliinngg tthhee pprrooggrraammss..
  422.  
  423.   If you've change from libc5 to glibc, or want to use EGCS, you could
  424.   look at http://huizen.dds.nl/~frodol/glibc/problems.html
  425.   <http://huizen.dds.nl/~frodol/glibc/problems.html> for some help.
  426.  
  427.   See also the ``The program crashes with a "Segmentation fault"''
  428.   section.
  429.  
  430.   33..55..  CCaann iissaappnnppttoooollss bbee uusseedd wwiitthh ooppeerraattiinngg ssyysstteemmss ootthheerr tthhaann LLiinnuuxx..
  431.  
  432.   No, or at least not easily. Issues that require addressing include
  433.  
  434.   1. Isapnptools needs to be able to get direct IO access privileges.
  435.      (Not a problem with DOS, hence the DOS port). I suspect that this
  436.      will require a device driver of some sort under windows NT.
  437.  
  438.   2. Some mechanism is needed to start up the device driver after isapnp
  439.      <isapnp.8.html> has run.
  440.  
  441.   33..66..  WWhhaatt ddoo II ddoo iiff II tthhiinnkk II''vvee ffoouunndd aa bbuugg oorr ggoott ssoommee ootthheerr pprroobb--
  442.   lleemm ??
  443.  
  444.   Check the web site to see if the bug has already been reported.
  445.  
  446.   Check the FAQ to see if the problem is operator error.
  447.  
  448.   Check all the READMEs and INSTALL file to see if the answer is there.
  449.  
  450.   If the program doesn't seem to obey the documentation, please look at
  451.   the source to identify the cause of the discrepancy, and report the
  452.   problem.
  453.  
  454.   If nothing shows in the above, please report the problem, including
  455.   the following information as appropriate:
  456.  
  457.   +o  Output of 'cat /proc/cpuinfo'
  458.  
  459.   +o  Output of 'cat /proc/pci'
  460.  
  461.   +o  Output of 'cat /proc/interrupts'
  462.  
  463.   +o  Output of 'cat /proc/ioports'
  464.  
  465.   +o  Output of 'cat /proc/devices'
  466.  
  467.   +o  Output of 'cat /etc/isapnp.gone'
  468.  
  469.   +o  Your configuration file (/etc/isapnp.conf), before and/or after
  470.      editting.
  471.  
  472.   +o  Output of 'cat /usr/include/kernel/autoconf.h' (or the autoconf.h
  473.      for the kernel you're running).
  474.  
  475.   +o  Output of 'lsmod' if you use kernel modules
  476.  
  477.   +o  The command lines used to install the relevant device driver kernel
  478.      modules, or configure the built in device driver (eg setserial).
  479.  
  480.   +o  Output of 'dmesg'
  481.  
  482.   +o  Output of 'gcc -v'
  483.  
  484.   +o  Output of 'ldd prog' where prog is the program giving trouble.
  485.  
  486.   +o  Inputs and Outputs of the program giving trouble:
  487.  
  488.        prog args.. > prog.stdout 2> prog.stderr
  489.  
  490.   +o  The patch that cures the problem !
  491.  
  492.   44..  GGeenneerraall -- RRuunnnniinngg
  493.  
  494.   44..11..  WWhhiicchh kkeerrnneell ddoo II nneeeedd ??
  495.  
  496.   Any kernel should do. The real time stuff may not exist in older
  497.   kernels (1.2.13 and before), but just compile without it.
  498.  
  499.   If you have new hardware, you may need a later kernel anyway.
  500.  
  501.   44..22..  YYoouu mmuusstt bbee rroooott ttoo rruunniissaappnnpp <<isapnp.8.html> andpnpdump
  502.   <pnpdump.8.html> because the program requires direct access to the IO
  503.   ports.  I get "Permission denied" when trying to run the programs.
  504.  
  505.   44..33..  TThhee pprrooggrraamm ccrraasshheess wwiitthh aa ""SSeeggmmeennttaattiioonn ffaauulltt""
  506.  
  507.   If you compiled the program using gcc2.8.0 this is very likely due to
  508.   a bug in the compiler's IO port handling.
  509.  
  510.   Recompile using gcc2.7.2.
  511.  
  512.   If you really must use gcc.2.8.x (like egcs) then you can try
  513.   recompiling the KERNEL with the ioport.c from one of the later 2.1.xxx
  514.   kernels, or 2.2.x kernels.
  515.  
  516.   44..44..  WWhheerree ccaann II ggeett eexxaammppllee ccoonnffiigguurraattiioonn ffiilleess ??
  517.  
  518.   The output of pnpdump <pnpdump.8.html> should give you the examples
  519.   you need for your hardware. If you run it with the -c (--config) flag,
  520.   it should even show how to configure your hardware in the output. The
  521.   output of pnpdump is supposed to be used as the input to isapnp
  522.   <isapnp.8.html> after editing.
  523.  
  524.   See also README.modules <README.modules> and INSTALL <INSTALL>.
  525.  
  526.   44..55..  HHooww ccaann II ffiinndd oouutt hhooww tthhee ccaarrdd iiss ccoonnffiigguurreedd ??
  527.  
  528.   Use the -d option with pnpdump <pnpdump.8.html>.
  529.  
  530.   The output dumps all the configuration registers for each device, you
  531.   will have to interpret the results against the PnP spec, but it's
  532.   mostly obvious.
  533.  
  534.   If you do this before running isapnp <isapnp.8.html> you can see the
  535.   BIOS/power up defaults.
  536.  
  537.   44..66..  IIssaappnnpp ffaaiillss wwiitthh eerrrroorr ""EErrrroorr ooccccuurrrreedd eexxeeccuuttiinngg rreeqquueesstt ''IISSOO--
  538.   LLAATTEE'' oonn oorr aarroouunndd lliinnee 1133 ------ ffuurrtthheerr aaccttiioonn aabboorrtteedd""
  539.  
  540.   This means no boards were found.
  541.  
  542.   If you have just added a new card into an ISA bus slot, it may be
  543.   conflicting with the readport address in your /etc/isapnp.conf file.
  544.   You will need to check the resource assignments in your configuration
  545.   file to make sure they don't clash with the new card.
  546.  
  547.   Try re-running pnpdump to see if it comes up with a different readport
  548.   address, then use the new readport address in you configuration file.
  549.   If the new card is also PnP, you may also need to copy the
  550.   configuration instructions across too.
  551.  
  552.   See also ``Pnpdump reports "No boards found"''
  553.  
  554.   44..77..  WWhhaatt iiss aa ggoooodd rreeaaddppoorrtt aaddddrreessss ttoo uussee ??
  555.  
  556.   A popular READPORT <isapnp.conf.5.html#READPORT> address seems to be
  557.   0x273 or 0x277.  You shouldn't need to explicitly specify one though
  558.   as pnpdump <pnpdump.8.html> can find one automatically.
  559.  
  560.   44..88..  PPnnppdduummpp ddooeessnn''tt ffiinndd aallll tthhee PPnnPP bbooaarrddss iinn tthhee ssyysstteemm..
  561.  
  562.   Are you sure the missing board is configured as PnP ? Many PnP boards
  563.   come with a DOS utility which allows them to be configured as non PnP,
  564.   or has jumpers which can be used instead of PnP.
  565.  
  566.   See also ``Pnpdump reports "No boards found"''
  567.  
  568.   44..99..  PPnnppdduummpp ccaannnnoott sseeee tthhee bbooaarrddss aafftteerr uussiinngg tthhee --rr ooppttiioonn..
  569.  
  570.   Use the -i (--ignorecsum) flag to pnpdump <pnpdump.8.html>. This flag
  571.   was added in version 1.18 of isapnptools.
  572.  
  573.   See also ``Pnpdump reports "No boards found"''
  574.  
  575.   44..1100..  PPnnppdduummpp rreeppoorrttss ""NNoo bbooaarrddss ffoouunndd""
  576.  
  577.   This means that you have no ISA PnP boards in your system. That's easy
  578.   then, you don't need isapnptools...
  579.  
  580.   If, in fact, you think you should have some ISA PnP boards, there are
  581.   a few possibilities:
  582.  
  583.   +o  The board is broken --- unlikely.
  584.  
  585.   +o  There is a conflict in the system resulting in no suitable READPORT
  586.      <isapnp.conf.5.html#READPORT> address being available.
  587.  
  588.      Although this is unlikely, a faulty PnP device can give a fault
  589.      which causes all READPORT addresses to fail. To see if this is the
  590.      case, use the -i (--ignorecsum) flag to pnpdump <pnpdump.8.html>.
  591.      This flag was added in version 1.18 of isapnptools.
  592.  
  593.   +o  You specified two arguments to pnpdump <pnpdump.8.html>, and the
  594.      READPORT <isapnp.conf.5.html#READPORT> address didn't match the
  595.      value used by the earlier PnP isolator.
  596.  
  597.      If you did this, and you used two arguments to prevent pnpdump
  598.      <pnpdump.8.html> from resetting some device's configuration,
  599.      upgrade to Version 1.13 of isapnptools, which will do it's own
  600.      isolation without resetting any device's configuration, even with
  601.      less than two arguments.
  602.  
  603.      Alternatively, if you are running the DOS version under windows 95,
  604.      see the  <README.DOS> file in the distribution.
  605.  
  606.      If you don't care if the boards configuration is reset, just run
  607.      pnpdump <pnpdump.8.html> with fewer arguments.
  608.  
  609.   +o  The board's PnP capability is configurable. This feature is
  610.      provided by some boards to support legacy systems. It allows a
  611.      board to be set to fixed address/interrupt settings, or it can be
  612.      set to PnP mode allowing standard software reconfiguration.
  613.  
  614.      If the board has been configured to a fixed setting, pnpdump
  615.      <pnpdump.8.html> won't find it. The thing to do is to find the (DOS
  616.      based probably) configuration software and run it to check the
  617.      board settings.
  618.  
  619.      If the board is this type, there are two courses of action:
  620.  
  621.      1. Use the configuration software to set the board to a suitable
  622.         set of addresses and interrupts. This will allow the use of
  623.         built-in kernel drivers as the board will be present at power
  624.         up.
  625.  
  626.      2. Use the configuration software to set the board to PnP mode,
  627.         then use isapnptools to configure the board after the kernel is
  628.         running.
  629.  
  630.   +o  The board disappears after being configured (by the BIOS). Try the
  631.      --reset option to pnpdump <pnpdump.8.html>.
  632.  
  633.   +o  You have a new computer, like my recent motherboard upgrade, and
  634.      the BIOS lists the card during bootup, but isapnp <isapnp.8.html>
  635.      can't see it.
  636.  
  637.      I've got this too, and it appears that some sort of conflict is
  638.      occurring during the isolation sequence for the first (of two)
  639.      boards, causing the checksum to fail for every readport address
  640.      tried. I've added the -i (--ignorecsum) flag to pnpdump
  641.      <pnpdump.8.html> in version 1.18 of isapnptools to allow the
  642.      isolation process to complete in the presence of this fault.
  643.  
  644.      The fault I've seen looks like there is some sort of bus contention
  645.      going on, with lower priority devices not dropping out like they
  646.      should during the isolation sequence: this results in a checksum
  647.      error on every readport address tried, because the first byte read
  648.      on the isolation sequence looks like the logical OR of each devices
  649.      first byte.
  650.  
  651.   +o  Another thing to try is to play with the BIOS PnP settings. I've
  652.      had a report that setting the 'PnP aware OS' setting to YES made
  653.      things work (this was for an ASUS TX-97 E motherboard). In my case,
  654.      I've found that I need to set it to NO to make things work. In fact
  655.      it's even worse than that: if I set any interrupt to non PnP,
  656.      except IRQ10 which has my (non PnP) network card on, nothing works
  657.      even then. And when it is working, if I ever try a full reset,
  658.      nothing works from then on until I reboot. (My motherboard chipset
  659.      is ACER LABS ALADDIN IV, reported by cat /proc/pci, with AMI BIOS).
  660.  
  661.   44..1111..  WWhhaatt ddooeess ""EErrrroorr ooccccuurrrreedd eexxeeccuuttiinngg rreeqquueesstt ''LLDD 22'' oonn oorr aarroouunndd
  662.   lliinnee......"" mmeeaann ??
  663.  
  664.   This means that attempting to read back the logical device number
  665.   failed.  The specification is rather unclear on whether this is
  666.   guaranteed to work, and in any event, it doesn't appear to work with
  667.   some devices.
  668.  
  669.   There are two solutions:
  670.  
  671.   1. Get isapnp <isapnp.8.html> version 1.10 or later which supports
  672.      VERIFYLD <isapnp.conf.5.html#VERIFYLD>.
  673.  
  674.   2. Use direct register access to select the logical device. So instead
  675.      of configuring each logical device as normal:
  676.  
  677.   (CONFIGURE CTL009c/481377 (LD 0
  678.   ... LD 0 settings
  679.   (ACT Y))
  680.   (LD 1
  681.   ... LD 1 settings
  682.   (ACT Y))
  683.   (LD 2
  684.   ... LD 2 settings
  685.   (ACT Y))
  686.   (LD 3
  687.   ... LD 3 settings
  688.   (ACT Y))
  689.   )
  690.  
  691.   pretend they are all logical device 0, and then change the logical
  692.   device by directly POKEing <isapnp.conf.5.html#POKE> the logical
  693.   device register (REGister 7).
  694.  
  695.        (CONFIGURE CTL009c/481377 (LD 0
  696.        ... LD 0 settings
  697.        (ACT Y)
  698.        (REG 7 (POKE 1) (PEEK)) # Set logical device 1, but no check
  699.        ... LD 1 settings
  700.        (ACT Y)
  701.        (REG 7 (POKE 2) (PEEK)) # Set logical device 2, but no check
  702.        ... LD 2 settings
  703.        (ACT Y)
  704.        (REG 7 (POKE 3) (PEEK)) # Set logical device 3, but no check
  705.        ... LD 3 settings
  706.        (ACT Y)
  707.        ))
  708.  
  709.   44..1122..  WWhhaatt ddooeess ""EEnndd ttaagg cchheecckkssuumm 00xxbb88 ((BBAADD))"" mmeeaann ((iinn tthhee ppnnppdduummpp
  710.   oouuttppuutt)) ??
  711.  
  712.   It means that the resource data read from the board was corrupt, which
  713.   in turn means that the resource data dump may be wrong. If you know
  714.   what the card resources really are, you can still configure it with
  715.   isapnp.
  716.  
  717.   The resource data is often stored in EEPROM, and can be written to via
  718.   the appropriate accesses. It can be corrupted by a faulty windows 95
  719.   driver, or driver crash for example.
  720.  
  721.   44..1133..  WWhhaatt ddooeess ""IIOO rraannggee cchheecckk aatttteemmpptteedd wwhhiillee ddeevviiccee aaccttiivvaatteedd""
  722.   mmeeaann ((ffrroomm iissaappnnpp)) ??
  723.  
  724.   This means you have attempted to CHECK <isapnp.conf.5.html#CHECK> the
  725.   device resource allocation for conflicts using the IO range feature,
  726.   but the device has already been activated. Either remove the check, or
  727.   put (ACT N) before the IO allocation.
  728.  
  729.   44..1144..  WWhhaatt ddooeess ""IIOO rraannggee cchheecckk ffaaiilleedd ffoorr nn bbyytteess ooff IIOO aatt aaddddrr""
  730.   mmeeaann ((ffrroomm iissaappnnpp)) ??
  731.  
  732.   This means you have attempted to CHECK <isapnp.conf.5.html#CHECK> the
  733.   device resource allocation for conflicts using the IO range feature,
  734.   but the check failed. Either: the device doesn't support IO range
  735.   checks (which you can find out from the pnpdump output), in which case
  736.   remove the check; or the device SIZE <isapnp.conf.5.html#SIZE> is too
  737.   large, in which case correct it; or the test has failed due to a
  738.   resource conflict, in which case change the IO BASE
  739.   <isapnp.conf.5.html#BASE> address.
  740.  
  741.   44..1155..  II tthhiinnkk II''vvee ccoonnffiigguurreedd tthhee bbooaarrdd ccoorrrreeccttllyy,, bbuutt tthhee ddrriivveerr
  742.   ssttiillll ccaann''tt ffiinndd iitt..
  743.  
  744.   The configuration file must end in WAITFORKEY
  745.   <isapnp.conf.5.html#WAITFORKEY>.
  746.  
  747.   pnpdump <pnpdump.8.html> from isapnptools 1.9 neglected to put this at
  748.   the end of the generated configuration script.
  749.  
  750.   44..1166..  WWhhaatt ddooeess ""//pprroocc//bbuuss//ppccii//ddeevviicceess nnoott ffoouunndd,, ssoo PPCCII rreessoouurrccee
  751.   ccoonnfflliicctt nnoott cchheecckkeedd"" mmeeaann ??
  752.  
  753.   This message occurs if running kernels before the later 2.1.xxx
  754.   series.  /proc/bus/pci/devices appears in later kernels to allow the
  755.   PCI device information to be read. If you have disabled the proc
  756.   filesystem, or are running an older kernel, then the isapnptools
  757.   programs cannot check resource allocations against those assigned to
  758.   PCI devices.
  759.  
  760.   This is unlikely to be a problem, because the resources are likely to
  761.   be shown used in /proc/interrupts and /proc/ioports etc if a driver is
  762.   using them. If this isn't good enough, and you still get a problem
  763.   with resource clashes, just add the PCI resources used to the
  764.   /etc/isapnp.gone file.
  765.  
  766.   44..1177..  IIss tthheerree aa ggrraapphhiiccaall iinntteerrffaaccee aavvaaiillaabbllee ??
  767.  
  768.   Yes. See gpnpconf-0.6.0.tar.gz
  769.   <http://james.kalifornia.com/~dpates/gpnpconf-0.6.0.tar.gz>.  Written
  770.   by Derrik Pates, it uses Perl/Gtk. This was November 1998, it may have
  771.   moved or been updated since then.
  772.  
  773.   55..  GGeenneerraall -- KKeerrnneell//DDrriivveerr iissssuueess
  774.  
  775.   55..11..  DDoo II nneeeedd ttoo ccoonnffiigguurree CCOONNFFIIGG__PPNNPP iinn tthhee kkeerrnneell ??
  776.  
  777.   This applies to 2.1.xxx and later kernels. They now include a
  778.   configuration option CONFIG_PNP. This is intended to enable the kernel
  779.   to configure some PnP devices, but there is little or no support in
  780.   the kernel (2.1.131).
  781.  
  782.   If you're using isapnptools, it would probably be better to set this
  783.   value to N, to prevent bad interactions when it does do something.
  784.  
  785.   55..22..  II''vvee ccoonnffiigguurreedd mmyy ...... uussiinngg iissaappnnppttoooollss,, bbuutt tthhee kkeerrnneell ddooeessnn''tt
  786.   rreeccooggnniissee iitt..
  787.  
  788.   There are lots of possibilities for this, just remember:
  789.  
  790.   1. isapnp <isapnp.8.html> must be run before the driver initialises,
  791.      unless a separate program is available to initialise drivers later
  792.      (eg. _s_e_t_s_e_r_i_a_l).  (See the  <README.modules> file provided with the
  793.      distribution).
  794.  
  795.   2. The settings for the board specified to isapnp <isapnp.8.html> must
  796.      match those of the driver for the board.
  797.  
  798.   3. You must load a driver for the card. It is not sufficient to have
  799.      an entry in dev/.
  800.  
  801.   55..33..  II ggeett tthhee eerrrroorr mmeessssaaggee ""...... mmoodduullee ssuuppppoorrtt aallrreeaaddyy llooaaddeedd"" wwhheenn
  802.   ttrryyiinngg ttoo llooaadd tthhee ...... mmoodduullee..
  803.  
  804.   This means that the driver module has already been loaded or is built
  805.   into the kernel. Try typing "cat proc/devices/" to see what devices
  806.   are already loaded before insmodding the driver.
  807.  
  808.   This could also be due to not rebooting after rebuilding the kernel
  809.   with module support for the required driver.
  810.  
  811.   55..44..  II''mm hhaavviinngg ttrroouubbllee ggeettttiinngg iinntteerrrruuppttss ttoo wwoorrkk..
  812.  
  813.   A bug has been discovered in isapnp for Version 1.11 of isapnptools,
  814.   relating to the setting of interrupt edges. This is unlikely to be a
  815.   problem for most hardware because the hardware doesn't allow anything
  816.   other that +ve edge interrupts, however, as Kevin Bowman has pointed
  817.   out, some hardware, such as that using the Fujitsu MB86701 does allow
  818.   the interrupt line to be programmed. In this case, try upgrading to
  819.   Version 1.13 or later.
  820.  
  821.   55..55..  II''vvee ccoonnffiigguurreedd tthhee ccaarrdd,, bbuutt //pprroocc//iinntteerrrruuppttss ssttiillll sshhoowwss tthhee
  822.   iinntteerrrruupptt aass uunnuusseedd..
  823.  
  824.   /proc/interupts still lists the IRQ I am choosing as unused and the
  825.   same for the IO ports. Does this mean the installation has failed ?
  826.  
  827.   Not necessarily. Until you load a device driver that uses them, the
  828.   resources remain unused. You can use pnpdump -d to check the
  829.   programming if you have a version that supports the --dumpregs option.
  830.  
  831.   55..66..  TThhee ddrriivveerr ffoorr mmyy ccaarrdd ccaannnnoott bbee bbuuiilltt aass aa mmoodduullee..
  832.  
  833.   If the driver you want to use can only be built into the kernel, then
  834.   you may want to consider using the DOS version of isapnptools, then
  835.   booting Linux via loadlin. See  <README.DOS> in the distribution for
  836.   details.
  837.  
  838.   55..77..  AAss ssoooonn aass II rruunn iissaappnnpp,, mmyy mmaacchhiinnee lloocckkss uupp..
  839.  
  840.   You have SCSI disks on a PnP adapter card - right ? In this case you
  841.   must be doing a full reset of the ISA PnP hardware, which is making
  842.   the disks disappear. Alternatively, you may have a PnP network card
  843.   and a built-in kernel driver.
  844.   Make sure your configuration file doesn't contain (ISOLATE
  845.   <isapnp.conf.5.html#ISOLATE> PRESERVE).
  846.  
  847.   For the network card case, you can still do a full ISA PnP reset if
  848.   you remove the network card driver from the kernel and use a module
  849.   instead (and load it after running isapnp).
  850.  
  851.   55..88..  HHooww ccaann II ssttoopp iissaappnnpp  aanndd ppnnppdduummpp  uussiinngg cceerrttaaiinn aaddddrreesssseess ffoorr
  852.   tthhee RREEAADDPPOORRTT ..
  853.  
  854.   Get isapnptools 1.16 or later, and put the port addresses you want to
  855.   avoid in the /etc/isapnp.gone file. This assumes you want to try lots
  856.   of addresses, but skip certain ones. If you just want to use a
  857.   specific address, specify the address as the last argument.
  858.  
  859.   66..  UUppggrraaddiinngg
  860.  
  861.   66..11..  II''vvee uuppggrraaddeedd iissaappnnppttoooollss ffrroomm mmyy ffaavvoouurriittee ddiissttrriibbuuttiioonn aanndd iitt
  862.   hhaass wwiippeedd oouutt mmyy iissaappnnpp..ccoonnff  ffiillee..
  863.  
  864.   This has been reported as a side effect of upgrading Slackware 3.4 to
  865.   3.5. I'm sorry, but it must be a bug in the distribution, as upgrading
  866.   from the isapnptools source will not do this. Please notify your
  867.   distribution supplier as they should not stomp on user generated files
  868.   during a package update.
  869.  
  870.   If you get the latest isapnptools, it should be possible to generate a
  871.   good isapnp.conf file without editting, though you may need cleverer
  872.   boot up scripts to discover the resource allocations.
  873.  
  874.   66..22..  WWhhaatt sshhoouulldd II ddoo ttoo uuppggrraaddee iissaappnnppttoooollss..
  875.  
  876.   If you are updating using a non source version of isapnptools, I
  877.   suggest you make a copy of the /etc/isapnp.conf and /etc/isapnp.gone
  878.   files if present, just in case they get overwritten.
  879.  
  880.   You may want to regenerate the /etc/isapnp.conf file to take advantage
  881.   of new keywords which may have been introduced. In this case run
  882.   pnpdump -c and capture the output, then edit it in comparison to the
  883.   previous /etc/isapnp.conf file to make the hardware configuration the
  884.   same.
  885.  
  886.   77..  RReessoouurrcceess
  887.  
  888.   It is very important that the resource settings you specify in the
  889.   isapnp.conf file avoid conflict with any other devices, Plug and Play
  890.   or otherwise. If you fail to do this, the system may fail to work
  891.   properly, crash, or lock up.
  892.  
  893.   77..11..  DDeetteerrmmiinniinngg rreessoouurrccee uussaaggee ((lliinnuuxx))..
  894.  
  895.   The easiest way to avoid conflict is to make a list of all the devices
  896.   in your system and the resources they use.
  897.  
  898.   To help in this task, try booting the system with no PnP devices
  899.   configured, then examine the resources the kernel is using via the
  900.   proc filesystem (which must be mounted, obviously).
  901.  
  902.   You can also follow these instructions after configuring the PnP
  903.   hardware and loading the appropriate driver modules to check that the
  904.   drivers have been configured properly.
  905.  
  906.   To check the proc file system is mounted, type mount at the shell
  907.   prompt, and somewhere in the response should be a line similar to the
  908.   one in the example below:
  909.  
  910.        $ mount
  911.        ...
  912.        /proc on /proc type proc (rw)
  913.        ...
  914.        $
  915.  
  916.   From now on, I shall assume you have the proc filesystem is mounted on
  917.   proc/. In addition, if you use driver modules you should ensure that
  918.   they are all loaded so that they grab the resources they require. You
  919.   may want to print the results obtained below:
  920.  
  921.   To see what IIOO aaddddrreesssseess are used, type "catproc/ioports/". This will
  922.   provide a list of IO ports and the drivers that use them.
  923.  
  924.   To see what iinntteerrrruuppttss are used, type "catproc/interrupts/". This must
  925.   be done with all your devices in use, (for example, mount a floppy
  926.   disk so that the floppy disk interrupt is in use, and open all the
  927.   serial ports, for example using the command "(cat < dev/ttyS1) &/").
  928.  
  929.   To see what DDMMAA cchhaannnneellss are used, type "catproc/dma/".
  930.  
  931.   Note also that some device drivers do not allocate resources unless a
  932.   process has ooppeenneedd tthhee ddeevviiccee. This is normally the case for the
  933.   floppy driver and serial drivers for example. This means that the
  934.   above commands will probably not locate all the resources used by all
  935.   the hardware, so you may still have to change some resource
  936.   allocations to get things to work.
  937.  
  938.   Another useful command to try is
  939.  
  940.        dmesg | grep -i irq
  941.  
  942.   which will trawl through the kernel bootup messages for lines
  943.   containing irq.  This finds resources used by kernel drivers.
  944.  
  945.   These commands will give a good idea of which resources are in use,
  946.   but they may miss something if the device doesn't have a driver for
  947.   example, or the BIOS has allocated the resources for some other
  948.   purpose. So it is a good idea to check the BIOS settings when
  949.   rebooting - particularly look for interrupt lines allocated to PCI
  950.   devices, you may want to deallocate some of these if your PnP card
  951.   needs a interrupt.
  952.  
  953.   Another possibility is to use the --dumpregs command to pnpdump
  954.   <pnpdump.8.html> to see what the BIOS has allocated.
  955.  
  956.   For further information on standard motherboard resource settings and
  957.   interrupt assignments, see the pc-hardware-faq (posted regularly to
  958.   the comp.sys.ibm.pc.hardware.* news groups).
  959.  
  960.   77..22..  II''vvee ggoott aa ......,, wwhhiicchh rruunnss ffiinnee uunnddeerr WWiinn9955,, hhooww ccaann II ffiinndd oouutt
  961.   tthhee ppoorrtt sseettttiinnggss ??
  962.  
  963.   Using the PEEK <isapnp.conf.5.html#PEEK> command in an isapnp
  964.   <isapnp.8.html> script allows the existing configuration register
  965.   settings to be examined. Assuming that the settings don't change
  966.   between booting Win95 and booting Linux, this script can be used to
  967.   find the settings.
  968.  
  969.   IIff yyoouu bboooott ssttrraaiigghhtt iinnttoo LLiinnuuxx,, ssoommee ddeevviicceess mmaayy nnoott bbee ccoonnffiigguurreedd.
  970.  
  971.   To find out the card settings, and then to generate a script to
  972.   reproduce them, follow these instructions:
  973.  
  974.   1. To find out what configuration registers the card has, you must
  975.      first run pnpdump <pnpdump.8.html> with the two optional arguments.
  976.      With pnpdump <pnpdump.8.html> from release 1.12 or later you don't
  977.      need the additional two arguments, though a single argument may be
  978.      useful to set the READPORT <isapnp.conf.5.html#READPORT> address.
  979.      See  <README.DOS> for instructions on how to obtain the READPORT
  980.      address that Win95 uses.
  981.  
  982.   2. Then examine the output to identify the number of logical devices,
  983.      and the resources used by each one. For this it is best to pipe the
  984.      pnpdump <pnpdump.8.html> output through grep to remove most of the
  985.      comments thus:
  986.  
  987.        pnpdump 2 0x3bb | grep -v '# [ A-Z]' | grep -v '^#$' | grep -v '^$' > pnpdump.res
  988.  
  989.   On my system I have two cards, and pnpdump.res looks like this:
  990.  
  991.   #
  992.   # (DEBUG)
  993.   (READPORT 0x03bb)
  994.   (CSN 2)
  995.   (IDENTIFY *)
  996.   (CONFIGURE EDI0119/236861364 (LD 0
  997.   # (IO 0 (BASE 0x0240))
  998.   # (INT 0 (IRQ 3 (MODE +E)))
  999.   # (MEM 0 (BASE 0x0c0000) (MODE bu) (UPPER 0x0c4000))
  1000.   # (MEM 0 (BASE 0x0c0000) (MODE br) (UPPER 0x004000))
  1001.   # (ACT Y)
  1002.   ))
  1003.   (CONFIGURE DFX0000/1493 (LD 0
  1004.   # (IO 0 (BASE 0x02f8))
  1005.   # (INT 0 (IRQ 3 (MODE +E)))
  1006.   # (IO 0 (BASE 0x02f8))
  1007.   # (INT 0 (IRQ 3 (MODE +E)))
  1008.   # (IO 0 (BASE 0x02f8))
  1009.   # (INT 0 (IRQ 3 (MODE +E)))
  1010.   # (IO 0 (BASE 0x03e8))
  1011.   # (INT 0 (IRQ 3 (MODE +E)))
  1012.   # (IO 0 (BASE 0x03e8))
  1013.   # (INT 0 (IRQ 3 (MODE +E)))
  1014.   # (IO 0 (BASE 0x02e8))
  1015.   # (INT 0 (IRQ 3 (MODE +E)))
  1016.   # (IO 0 (BASE 0x02e8))
  1017.   # (INT 0 (IRQ 3 (MODE +E)))
  1018.   # (IO 0 (BASE 0x03f8))
  1019.   # (INT 0 (IRQ 4 (MODE +E)))
  1020.   # (IO 0 (BASE 0x03f8))
  1021.   # (INT 0 (IRQ 3 (MODE +E)))
  1022.   # (IO 0 (BASE 0x03f8))
  1023.   # (INT 0 (IRQ 3 (MODE +E)))
  1024.   # (ACT Y)
  1025.   ))
  1026.   (CONFIGURE DFX0000/1493 (LD 1
  1027.   # (DMA 0 (CHANNEL 3))
  1028.   # (DMA 0 (CHANNEL 1))
  1029.   # (DMA 0 (CHANNEL 4))
  1030.   # (ACT Y)
  1031.   ))
  1032.  
  1033.   3. Edit this to remove the duplicates, remove the (ACT
  1034.      <isapnp.conf.5.html#ACT>) commands, uncomment each resource and
  1035.      change the resource assignment commands to (PEEK
  1036.      <isapnp.conf.5.html#PEEK>), thus:
  1037.  
  1038.   (READPORT 0x03bb)
  1039.   (CSN 2)
  1040.   (IDENTIFY *)
  1041.   (CONFIGURE EDI0119/236861364 (LD 0
  1042.   (IO 0 (PEEK))
  1043.   (INT 0 (PEEK))
  1044.   (MEM 0 (PEEK))
  1045.   ))
  1046.   (CONFIGURE DFX0000/1493 (LD 0
  1047.   (IO 0 (PEEK))
  1048.   (INT 0 (PEEK))
  1049.   ))
  1050.   (CONFIGURE DFX0000/1493 (LD 1
  1051.   (DMA 0 (PEEK))
  1052.   ))
  1053.  
  1054.   This shows the ethernet card (EDI0119/236861364) has a single logical
  1055.   device which uses one each IO <isapnp.conf.5.html#IO>, INT
  1056.   <isapnp.conf.5.html#INT>, and MEM <isapnp.conf.5.html#MEM> resource,
  1057.   while the PnP modem (DFX0000/1493) has two logical devices:
  1058.  
  1059.      a. (LD <isapnp.conf.5.html#LD> 0), which uses an IO
  1060.         <isapnp.conf.5.html#IO> resource, and an INT
  1061.         <isapnp.conf.5.html#INT> resource,
  1062.  
  1063.      b. (LD <isapnp.conf.5.html#LD> 1), which uses a single 8 bit DMA
  1064.         <isapnp.conf.5.html#DMA> channel.
  1065.  
  1066.   4. Run isapnp <isapnp.8.html> on this script, and the following output
  1067.      is obtained:
  1068.  
  1069.        Board 1 has Identity 13 0e 1e 37 b4 19 01 89 14:  EDI0119 Serial No 236861364 [checksum 13]
  1070.        Board 2 has Identity 6e 00 00 05 d5 00 00 d8 10:  DFX0000 Serial No 1493 [checksum 6e]
  1071.        Peek(EDI0119/236861364)[0][0x60](IO  0) is 0x0340, (3,64)
  1072.        Peek(EDI0119/236861364)[0][0x70](INT 0) is 0x0A02, (10,2)
  1073.        Peek(EDI0119/236861364)[0][0x40](MEM 0) is 0x0000000000000000, (0,0,0,0,0,0,0,0)
  1074.        Peek(DFX0000/1493)[0][0x60](IO  0) is 0x03E8, (3,232)
  1075.        Peek(DFX0000/1493)[0][0x70](INT 0) is 0x0C02, (12,2)
  1076.        Peek(DFX0000/1493)[1][0x74](DMA 0) is 0x04, (4)
  1077.  
  1078.   From this you can see that the modem card is configured at IO
  1079.   <isapnp.conf.5.html#IO> address 0x3E8, and uses interrupt 12.  The 2
  1080.   in the bottom half of the INT <isapnp.conf.5.html#INT> register means
  1081.   +ve edge trigger and is unlikely to ever be different. The DMA
  1082.   <isapnp.conf.5.html#DMA> channel is set to 4, which means DMA not
  1083.   used.
  1084.  
  1085.   Also you can see that the ethernet card is configured at IO
  1086.   <isapnp.conf.5.html#IO> address 0x340, and uses interrupt 10. The MEM
  1087.   <isapnp.conf.5.html#MEM> resource is all 0, which means it is not
  1088.   used.
  1089.  
  1090.   5. So to program these cards like this, use the script:
  1091.  
  1092.        (READPORT 0x3bb)
  1093.        (CSN 2)
  1094.        (IDENTIFY *)
  1095.        (CONFIGURE EDI0119/236861364
  1096.                (LD 0
  1097.                        (IO 0 (BASE 0x0340))
  1098.                        (INT 0 (IRQ 10 (MODE +E)))
  1099.                        (ACT Y)))
  1100.        (CONFIGURE DFX0000/1493
  1101.                (LD 0
  1102.                        (IO 0 (BASE 0x3e8))
  1103.                        (INT 0 (IRQ 12 (MODE +E)))
  1104.                        (ACT Y)))
  1105.        (WAITFORKEY)
  1106.  
  1107.   77..33..  EExxaammiinniinngg WWiinn9955 rreessoouurrccee sseettttiinnggss..
  1108.  
  1109.   Alternatively, for the device of interest:
  1110.  
  1111.   1. Right click on My Computer
  1112.  
  1113.   2. Click on Properties->Device Manager
  1114.  
  1115.   3. Select the device of interest, then click on Properties->Resources.
  1116.  
  1117.      Make a note of the resources used.
  1118.  
  1119.   77..44..  TThhee wwiinnddoowwss CCTTPPNNPP..CCFFGG ffiillee..
  1120.  
  1121.   Some machines may have a CTPNP.CFG file containing PnP resource
  1122.   information. Have a look. If you've got one, it may be best to use the
  1123.   READPORT address in there.
  1124.  
  1125.   77..55..  HHooww ccaann II pprreevveenntt ppnnppdduummpp  aallllooccaattiinngg cceerrttaaiinn rreessoouurrcceess wwiitthh tthhee
  1126.   --cc  ffllaagg..
  1127.  
  1128.   Get isapnptools 1.16 or later, and put the resources you want to avoid
  1129.   in the /etc/isapnp.gone file.
  1130.  
  1131.   77..66..  CCoommmmoonn pprroobblleemmss
  1132.  
  1133.   The usual source of conflicts in the sound card with something else,
  1134.   tyically the network card. This is because network cards like to be at
  1135.   addresses 0x300,0x320,0x340,etc, and sound cards use IO addresses all
  1136.   over the place, including (in my system) 0x0220-022f, 0x0330-0333,
  1137.   0x0388-038b.
  1138.  
  1139.   If you have a system with a network card, and then add a sound card
  1140.   later, it is quite likely that the network card is using addresses
  1141.   0x0320-033f which will be clobbered by the sound card. The solution is
  1142.   to move the network card, and in my system I have it at 0x0340-035f.
  1143.  
  1144.   77..77..  WWhhaatt ddooeess iissaappnnpp mmeeaann bbyy ""FFaattaall -- rreessoouurrccee ccoonnfflliicctt aallllooccaattiinngg
  1145.   DDMMAA11""..
  1146.  
  1147.   This means you are trying to allocate DMA1 to a PnP device, but the
  1148.   DMA resource has already been allocated to another device.
  1149.  
  1150.   Similar messages can occur for IO ports or interrupts.
  1151.  
  1152.   You need to find out what other device is using the resource, in case
  1153.   it turns out that the device you are trying to configure has already
  1154.   been configured by the BIOS, and a kernel driver has found it and is
  1155.   using it.
  1156.  
  1157.   To find out what is using it, look in /proc/dma, /proc/ioports,
  1158.   /proc/interrupts as appropriate, or /etc/isapnp.gone.
  1159.  
  1160.   If it is in use by another (different) device, then you must change
  1161.   your resource allocation.
  1162.  
  1163.   If is in use by the device you are trying to configure, then you
  1164.   probably don't need to configure the device using isapnptools. Simply
  1165.   make sure the kernel driver settings match those allocated by the
  1166.   BIOS.
  1167.  
  1168.   77..88..  DDoo II hhaavvee ttoo ccoonnffiigguurree aallll tthhee ddeevviicceess..
  1169.  
  1170.   No. More modern BIOSes seem to configure almost all devices, so you
  1171.   don't need to run isapnptools at all. If a device is not configured
  1172.   how you want, you can just reconfigure that one. Note that if you do
  1173.   reconfigure a device, if must not have a driver running on it.  This
  1174.   means the driver must not be built into the kernel, and any driver
  1175.   modules for the device must be unloaded.
  1176.  
  1177.   88..  AAddvvaanncceedd uussaaggee..
  1178.  
  1179.   88..11..  CCoommmmoonn ccoonnffiigguurraattiioonnss oonn mmuullttiippllee mmaacchhiinneess,, VVeerrssiioonn 11..1111 aanndd
  1180.   eeaarrlliieerr..
  1181.  
  1182.   It is not possible to use the same configuration file on multiple
  1183.   machines with these earlier versions of isapnptools.
  1184.  
  1185.   However, it is possible to concoct something with a few scripts etc.
  1186.   The key is to split off each board's configuration into it's own file,
  1187.   then use an empty run of isapnp with just an IDENTIFY
  1188.   <isapnp.conf.5.html#IDENTIFY> to discover which board configurations
  1189.   need to be used. Here is what I said to someone with this problem:
  1190.  
  1191.   I suggest you run isapnp twice (or more!):
  1192.  
  1193.   1. The first time, do a probe to find out which cards are present, ie,
  1194.      remove all the (CONFIGURE <isapnp.conf.5.html#CONFIGURE>...)
  1195.      sections. Use the output of the (IDENTIFY
  1196.      <isapnp.conf.5.html#IDENTIFY>) command in the isapnp script to
  1197.      choose the next script.
  1198.  
  1199.   2. Run the script selected by the above. Note that the second isapnp
  1200.      scripts don't need to run (ISOLATE <isapnp.conf.5.html#ISOLATE>),
  1201.      just do a (CSN <isapnp.conf.5.html#CSN> x)(IDENTIFY
  1202.      <isapnp.conf.5.html#IDENTIFY>) instead.
  1203.  
  1204.   If you do this, it may be advisable to fix the READPORT
  1205.   <isapnp.conf.5.html#READPORT> in all four scripts.
  1206.  
  1207.   Using this method, you could have an individual script for each board,
  1208.   and if you named them by the compacted ident, you could get a list of
  1209.   files to configure thus:
  1210.  
  1211.        BOARDS=`isapnp probe.conf | grep '^Board' | cut -c22,23,25,26,28,29,31,32,34,35,37,38,40,41,43,44,46,47`
  1212.        for board in $BOARDS
  1213.        do
  1214.                isapnp $board.conf
  1215.        done
  1216.  
  1217.   where probe.conf is little more than
  1218.  
  1219.        (READPORT 0x3bb) # or whatever
  1220.        (ISOLATE)
  1221.        (IDENTIFY *)
  1222.        (WAITFORKEY)
  1223.  
  1224.   Note that if you were to use this method with isapnptools version 1.12
  1225.   or later, you could skip the grep and cut by using an appropriate
  1226.   IDENTIFYFORMAT <isapnp.conf.5.html#IDENTIFYFORMAT> command.
  1227.  
  1228.   And each of the board scripts fit the following skeleton:
  1229.  
  1230.        (READPORT 0x3bb) # or whatever
  1231.        (CSN 10)         # or whatever
  1232.        (IDENTIFY *)
  1233.        (CONFIGURE ....)
  1234.        (WAITFORKEY)
  1235.  
  1236.   88..22..  CCoommmmoonn ccoonnffiigguurraattiioonnss oonn mmuullttiippllee mmaacchhiinneess,, VVeerrssiioonn 11..1122 aanndd
  1237.   llaatteerr..
  1238.  
  1239.   With version 1.12 and later, CONFIGURE <isapnp.conf.5.html#CONFIGURE>
  1240.   blocks for boards not present will be skipped, so you can just have a
  1241.   single file containing the configurations for all boards in all
  1242.   systems.
  1243.  
  1244.   If you have machines with the same or similar setup of PnP cards, then
  1245.   this can be further optimised by having a single configuration for
  1246.   each type of card, using #1,#2,etc instead of the real serial numbers.
  1247.   Any systems with a non-standard setup could be overridden by a later
  1248.   CONFIGURE <isapnp.conf.5.html#CONFIGURE> specifying the card's full
  1249.   serial number.
  1250.  
  1251.   88..33..  SSeennddiinngg aa RREESSEETT CCSSNN ccoommmmaanndd..
  1252.  
  1253.        Is there a way to issue a "Reset CSN Command", as described
  1254.        in Section 4.3 (p15) of the "Plug and Play ISA Specification
  1255.        1.0a" using isapnptools?
  1256.  
  1257.   Sure, just poke the register using the REG <isapnp.conf.5.html#REG>
  1258.   command: after selecting a device and logical device (it doesn't
  1259.   matter which !) do
  1260.  
  1261.        (REG 2 (POKE 4))
  1262.  
  1263.   See section A.1 on page 51 also.
  1264.  
  1265.   This might be a good use for CSN <isapnp.conf.5.html#CSN>, as in
  1266.  
  1267.        (CSN 1 (LD 0 (REG 2 (POKE 4))))
  1268.  
  1269.   You may have to reconfigure the cards again afterwards if you want to
  1270.   fiddle with the PnP registers.
  1271.  
  1272.   88..44..  DDuummppiinngg tthhee bbooaarrddss ccoonnffiigguurraattiioonn rreeggiisstteerrss..
  1273.  
  1274.   For isapnptools up to 1.15 you can modify the Makefile to uncomment
  1275.   the line
  1276.  
  1277.        PNPDUMPFLAGS += -DDUMPREGS
  1278.  
  1279.   this will cause pnpdump will dump all the standard configuration
  1280.   registers for each board.
  1281.  
  1282.   For isapnptools 1.16 and later, just give the option --dumpregs to
  1283.   pnpdump to get this dump.
  1284.  
  1285.   Note that this dump is dumping the physical registers, and will thus
  1286.   show the settings that have been put in there by the BIOS, or some
  1287.   cards will put a default setting in. Unused registers read back as 0.
  1288.  
  1289.   But for example, the missing two IO resources on an AWE32 have been
  1290.   reported to show up this way.
  1291.  
  1292.   It is also handy to check that isapnp <isapnp.8.html> has done the
  1293.   right thing.
  1294.  
  1295.   99..  SSoouunnddccaarrddss..
  1296.  
  1297.   These seem to be the cause of most problems. Just remember that for a
  1298.   card to work, the card must be accessible to the kernel (that's what
  1299.   isapnp <isapnp.8.html> is for) aanndd it must have the correct driver aanndd
  1300.   it mustn't conflict with any other devices.
  1301.  
  1302.   If you suspect driver problems etc, you may wish to join the sound
  1303.   mailing list at linux-sound@vger.rutgers.edu.
  1304.  
  1305.   The later 2.1 kernels have a new sound driver, see the documentation
  1306.   in the /usr/src/linux/Documentation/sound directory.
  1307.  
  1308.   99..11..  II''vvee ggoott aann AAWWEE3322//AAWWEE6644,, bbuutt LLiinnuuxx ddooeessnn''tt rreeccooggnniissee iitt..
  1309.  
  1310.   [According to Stefan Markgraf, the AWE64 suffers the same problem
  1311.   described below, where the two ports at 0xA20 and 0xE20 are not
  1312.   mentioned in the resource dump.]
  1313.  
  1314.   I've had some great feedback from agriffin@cpcug.org on this: (and a
  1315.   couple of corrections from Takashi Iwai <http://bahamut.mm.t.u-
  1316.   tokyo.ac.jp/~iwai/>)
  1317.  
  1318.   I have been able to get my SoundBlaster AWE 32 pnp configured and with
  1319.   drivers from Takashi Iwai, I now get some of the best sounds ever.
  1320.   (At least on any of the machines here.)
  1321.  
  1322.   I have included both the original output from pnpdump <pnpdump.8.html>
  1323.   and the conf that I use to get things working.  NNoottee that the dump
  1324.   does not detect the I/O ports at 0xA20 and 0xE20.  The manual that
  1325.   came with the card lists these ports and a note in one of the
  1326.   newsgroups show that all three of the AWE I/O ports need to be
  1327.   configured.
  1328.  
  1329.   Before adding the two I/O ports, the isapnp <isapnp.8.html>
  1330.   /etc/<pnpdump created file editted to activate the card> does not
  1331.   report anything unusual, but when I modprobe -a sound, syslog contains
  1332.   two lines:
  1333.  
  1334.                AWE32 not found
  1335.                AWE32: not detected
  1336.  
  1337.   and the output from  cat /dev/sndstst in this case is:
  1338.  
  1339.   Sound Driver:3.5.4-960630 (Tue Jan 28 21:37:47 EST 1997 root,
  1340.   Linux palis 2.1.23 #1 Tue Jan 28 19:29:03 EST 1997 i586)
  1341.   Kernel: Linux palis 2.0.28 #3 Tue Jan 28 21:38:48 EST 1997 i586
  1342.   Config options: a80002
  1343.  
  1344.   Installed drivers:
  1345.   Type 1: OPL-2/OPL-3 FM
  1346.   Type 2: Sound Blaster
  1347.   Type 7: SB MPU-401
  1348.  
  1349.   Card config:
  1350.   Sound Blaster at 0x220 irq 5 drq 1,5
  1351.   SB MPU-401 at 0x330 irq 5 drq 0
  1352.   OPL-2/OPL-3 FM at 0x388 drq 0
  1353.  
  1354.   Audio devices:
  1355.   0: Sound Blaster 16 (4.13)
  1356.  
  1357.   Synth devices:
  1358.   0: Yamaha OPL-3
  1359.  
  1360.   Midi devices:
  1361.   0: Sound Blaster 16
  1362.  
  1363.   Timers:
  1364.   0: System clock
  1365.  
  1366.   Mixers:
  1367.   0: Sound Blaster
  1368.  
  1369.   Now, when the two I/O ports (0xA20 and 0XE20) are included in the
  1370.   isapnp.conf,  syslog has:
  1371.  
  1372.                AWE32 Sound Driver v0.3.2 (DRAM 2048K)
  1373.  
  1374.   and the output from  /dev/sndstat shows:
  1375.  
  1376.   Sound Driver:3.5.4-960630 (Tue Jan 28 21:37:47 EST 1997 root,
  1377.   Linux palis 2.1.23 #1 Tue Jan 28 19:29:03 EST 1997 i586)
  1378.   Kernel: Linux palis 2.0.28 #3 Tue Jan 28 21:38:48 EST 1997 i586
  1379.   Config options: a80002
  1380.  
  1381.   Installed drivers:
  1382.   Type 1: OPL-2/OPL-3 FM
  1383.   Type 2: Sound Blaster
  1384.   Type 7: SB MPU-401
  1385.  
  1386.   Card config:
  1387.   Sound Blaster at 0x220 irq 5 drq 1,5
  1388.   SB MPU-401 at 0x330 irq 5 drq 0
  1389.   OPL-2/OPL-3 FM at 0x388 drq 0
  1390.  
  1391.   Audio devices:
  1392.   0: Sound Blaster 16 (4.13)
  1393.  
  1394.   Synth devices:
  1395.   0: Yamaha OPL-3
  1396.   1: AWE32 Driver v0.3.2 (DRAM 2048k)
  1397.  
  1398.   Midi devices:
  1399.   0: Sound Blaster 16
  1400.  
  1401.   Timers:
  1402.   0: System clock
  1403.  
  1404.   Mixers:
  1405.   0: Sound Blaster
  1406.  
  1407.   99..11..11..  TThhee oouuttppuutt ffrroomm ppnnppdduummpp ((bbeeffoorree ccoonnffiigguurraattiioonn))..
  1408.  
  1409.   # This is free software, see the sources for details.
  1410.   # This software has NO WARRANTY, use at your OWN RISK
  1411.   #
  1412.   # For details of this file format, see isapnp.conf(5)
  1413.   #
  1414.   # Compiler flags: -DREALTIME -DNEEDSETSCHEDULER
  1415.   #
  1416.   # Trying port address 0203
  1417.   # Board 1 has serial identifier 0d 00 00 d5 88 43 00 8c 0e
  1418.  
  1419.   # (DEBUG)
  1420.   (READPORT 0x0203)
  1421.   (ISOLATE)
  1422.   (IDENTIFY *)
  1423.  
  1424.   # Card 1: (serial identifier 0d 00 00 d5 88 43 00 8c 0e)
  1425.   # CTL0043 Serial No 54664 [checksum 0d]
  1426.   # Version 1.0, Vendor version 1.0
  1427.   # ANSI string -->Creative SB AWE32 PnP<--
  1428.   #
  1429.   # Logical device id CTL0031
  1430.   #
  1431.   # Edit the entries below to uncomment out the configuration required.
  1432.   # Note that only the first value of any range is given, this may be changed if required
  1433.   # Don't forget to uncomment the activate (ACT Y) when happy
  1434.  
  1435.   (CONFIGURE CTL0043/54664 (LD 0
  1436.   #     ANSI string -->Audio<--
  1437.  
  1438.   # Multiple choice time, choose one only !
  1439.  
  1440.   #     Start dependent functions: priority preferred
  1441.   #       IRQ 5.
  1442.   #             High true, edge sensitive interrupt (by default)
  1443.   # (INT 0 (IRQ 5 (MODE +E)))
  1444.   #       First DMA channel 1.
  1445.   #             8 bit DMA only
  1446.   #             Logical device is not a bus master
  1447.   #             DMA may execute in count by byte mode
  1448.   #             DMA may not execute in count by word mode
  1449.   #             DMA channel speed in compatible mode
  1450.   # (DMA 0 (CHANNEL 1))
  1451.   #       Next DMA channel 5.
  1452.   #             16 bit DMA only
  1453.   #             Logical device is not a bus master
  1454.   #             DMA may not execute in count by byte mode
  1455.   #             DMA may execute in count by word mode
  1456.   #             DMA channel speed in compatible mode
  1457.   # (DMA 1 (CHANNEL 5))
  1458.   #       Logical device decodes 16 bit IO address lines
  1459.   #             Minimum IO base address 0x0220
  1460.   #             Maximum IO base address 0x0220
  1461.   #             IO base alignment 1 bytes
  1462.   #             Number of IO addresses required: 16
  1463.   # (IO 0 (BASE 0x0220))
  1464.   #       Logical device decodes 16 bit IO address lines
  1465.   #             Minimum IO base address 0x0330
  1466.   #             Maximum IO base address 0x0330
  1467.   #             IO base alignment 1 bytes
  1468.   #             Number of IO addresses required: 2
  1469.   # (IO 1 (BASE 0x0330))
  1470.   #       Logical device decodes 16 bit IO address lines
  1471.   #             Minimum IO base address 0x0388
  1472.   #             Maximum IO base address 0x0388
  1473.   #             IO base alignment 1 bytes
  1474.   #             Number of IO addresses required: 4
  1475.   # (IO 2 (BASE 0x0388))
  1476.  
  1477.   #       Start dependent functions: priority acceptable
  1478.   #       IRQ 5, 7 or 10.
  1479.   #             High true, edge sensitive interrupt (by default)
  1480.   # (INT 0 (IRQ 5 (MODE +E)))
  1481.   #       First DMA channel 0, 1 or 3.
  1482.   #             8 bit DMA only
  1483.   #             Logical device is not a bus master
  1484.   #             DMA may execute in count by byte mode
  1485.   #             DMA may not execute in count by word mode
  1486.   #             DMA channel speed in compatible mode
  1487.   # (DMA 0 (CHANNEL 0))
  1488.   #       Next DMA channel 5, 6 or 7.
  1489.   #             16 bit DMA only
  1490.   #             Logical device is not a bus master
  1491.   #             DMA may not execute in count by byte mode
  1492.   #             DMA may execute in count by word mode
  1493.   #             DMA channel speed in compatible mode
  1494.   # (DMA 1 (CHANNEL 5))
  1495.   #       Logical device decodes 16 bit IO address lines
  1496.   #             Minimum IO base address 0x0220
  1497.   #             Maximum IO base address 0x0280
  1498.   #             IO base alignment 32 bytes
  1499.   #             Number of IO addresses required: 16
  1500.   # (IO 0 (BASE 0x0220))
  1501.   #       Logical device decodes 16 bit IO address lines
  1502.   #             Minimum IO base address 0x0300
  1503.   #             Maximum IO base address 0x0330
  1504.   #             IO base alignment 48 bytes
  1505.   #             Number of IO addresses required: 2
  1506.   # (IO 1 (BASE 0x0300))
  1507.   #       Logical device decodes 16 bit IO address lines
  1508.   #             Minimum IO base address 0x0388
  1509.   #             Maximum IO base address 0x0388
  1510.   #             IO base alignment 1 bytes
  1511.   #             Number of IO addresses required: 4
  1512.   # (IO 2 (BASE 0x0388))
  1513.  
  1514.   #       Start dependent functions: priority acceptable
  1515.   #       IRQ 5, 7 or 10.
  1516.   #             High true, edge sensitive interrupt (by default)
  1517.   # (INT 0 (IRQ 5 (MODE +E)))
  1518.   #       First DMA channel 0, 1 or 3.
  1519.   #             8 bit DMA only
  1520.   #             Logical device is not a bus master
  1521.   #             DMA may execute in count by byte mode
  1522.   #             DMA may not execute in count by word mode
  1523.   #             DMA channel speed in compatible mode
  1524.   # (DMA 0 (CHANNEL 0))
  1525.   #       Next DMA channel 5, 6 or 7.
  1526.   #             16 bit DMA only
  1527.   #             Logical device is not a bus master
  1528.   #             DMA may not execute in count by byte mode
  1529.   #             DMA may execute in count by word mode
  1530.   #             DMA channel speed in compatible mode
  1531.   # (DMA 1 (CHANNEL 5))
  1532.   #       Logical device decodes 16 bit IO address lines
  1533.   #             Minimum IO base address 0x0220
  1534.   #             Maximum IO base address 0x0280
  1535.   #             IO base alignment 32 bytes
  1536.   #             Number of IO addresses required: 16
  1537.   # (IO 0 (BASE 0x0220))
  1538.   #       Logical device decodes 16 bit IO address lines
  1539.   #             Minimum IO base address 0x0300
  1540.   #             Maximum IO base address 0x0330
  1541.   #             IO base alignment 48 bytes
  1542.   #             Number of IO addresses required: 2
  1543.   # (IO 1 (BASE 0x0300))
  1544.  
  1545.   #       Start dependent functions: priority functional
  1546.   #       IRQ 5, 7 or 10.
  1547.   #             High true, edge sensitive interrupt (by default)
  1548.   # (INT 0 (IRQ 5 (MODE +E)))
  1549.   #       First DMA channel 0, 1 or 3.
  1550.   #             8 bit DMA only
  1551.   #             Logical device is not a bus master
  1552.   #             DMA may execute in count by byte mode
  1553.   #             DMA may not execute in count by word mode
  1554.   #             DMA channel speed in compatible mode
  1555.   # (DMA 0 (CHANNEL 0))
  1556.   #       Next DMA channel 5, 6 or 7.
  1557.   #             16 bit DMA only
  1558.   #             Logical device is not a bus master
  1559.   #             DMA may not execute in count by byte mode
  1560.   #             DMA may execute in count by word mode
  1561.   #             DMA channel speed in compatible mode
  1562.   # (DMA 1 (CHANNEL 5))
  1563.   #       Logical device decodes 16 bit IO address lines
  1564.   #             Minimum IO base address 0x0220
  1565.   #             Maximum IO base address 0x0280
  1566.   #             IO base alignment 32 bytes
  1567.   #             Number of IO addresses required: 16
  1568.   # (IO 0 (BASE 0x0220))
  1569.  
  1570.   #       Start dependent functions: priority functional
  1571.   #       IRQ 5, 7 or 10.
  1572.   #             High true, edge sensitive interrupt (by default)
  1573.   # (INT 0 (IRQ 5 (MODE +E)))
  1574.   #       First DMA channel 0, 1 or 3.
  1575.   #             8 bit DMA only
  1576.   #             Logical device is not a bus master
  1577.   #             DMA may execute in count by byte mode
  1578.   #             DMA may not execute in count by word mode
  1579.   #             DMA channel speed in compatible mode
  1580.   # (DMA 0 (CHANNEL 0))
  1581.   #       Logical device decodes 16 bit IO address lines
  1582.   #             Minimum IO base address 0x0220
  1583.   #             Maximum IO base address 0x0280
  1584.   #             IO base alignment 32 bytes
  1585.   #             Number of IO addresses required: 16
  1586.   # (IO 0 (BASE 0x0220))
  1587.   #       Logical device decodes 16 bit IO address lines
  1588.   #             Minimum IO base address 0x0300
  1589.   #             Maximum IO base address 0x0330
  1590.   #             IO base alignment 48 bytes
  1591.   #             Number of IO addresses required: 2
  1592.   # (IO 1 (BASE 0x0300))
  1593.   #       Logical device decodes 16 bit IO address lines
  1594.   #             Minimum IO base address 0x0388
  1595.   #             Maximum IO base address 0x0388
  1596.   #             IO base alignment 1 bytes
  1597.   #             Number of IO addresses required: 4
  1598.   # (IO 2 (BASE 0x0388))
  1599.  
  1600.   #       Start dependent functions: priority functional
  1601.   #       IRQ 5, 7 or 10.
  1602.   #             High true, edge sensitive interrupt (by default)
  1603.   # (INT 0 (IRQ 5 (MODE +E)))
  1604.   #       First DMA channel 0, 1 or 3.
  1605.   #             8 bit DMA only
  1606.   #             Logical device is not a bus master
  1607.   #             DMA may execute in count by byte mode
  1608.   #             DMA may not execute in count by word mode
  1609.   #             DMA channel speed in compatible mode
  1610.   # (DMA 0 (CHANNEL 0))
  1611.   #       Logical device decodes 16 bit IO address lines
  1612.   #             Minimum IO base address 0x0220
  1613.   #             Maximum IO base address 0x0280
  1614.   #             IO base alignment 32 bytes
  1615.   #             Number of IO addresses required: 16
  1616.   # (IO 0 (BASE 0x0220))
  1617.   #       Logical device decodes 16 bit IO address lines
  1618.   #             Minimum IO base address 0x0300
  1619.   #             Maximum IO base address 0x0330
  1620.   #             IO base alignment 48 bytes
  1621.   #             Number of IO addresses required: 2
  1622.   # (IO 1 (BASE 0x0300))
  1623.  
  1624.   #       Start dependent functions: priority functional
  1625.   #       IRQ 5, 7, 10 or 11.
  1626.   #             High true, edge sensitive interrupt (by default)
  1627.   # (INT 0 (IRQ 5 (MODE +E)))
  1628.   #       First DMA channel 0, 1 or 3.
  1629.   #             8 bit DMA only
  1630.   #             Logical device is not a bus master
  1631.   #             DMA may execute in count by byte mode
  1632.   #             DMA may not execute in count by word mode
  1633.   #             DMA channel speed in compatible mode
  1634.   # (DMA 0 (CHANNEL 0))
  1635.   #       Logical device decodes 16 bit IO address lines
  1636.   #             Minimum IO base address 0x0220
  1637.   #             Maximum IO base address 0x0280
  1638.   #             IO base alignment 32 bytes
  1639.   #             Number of IO addresses required: 16
  1640.   # (IO 0 (BASE 0x0220))
  1641.  
  1642.   #     End dependent functions
  1643.   # (ACT Y)
  1644.   ))
  1645.   #
  1646.   # Logical device id CTL2011
  1647.   #
  1648.   # Edit the entries below to uncomment out the configuration required.
  1649.   # Note that only the first value of any range is given, this may be changed if required
  1650.   # Don't forget to uncomment the activate (ACT Y) when happy
  1651.  
  1652.   (CONFIGURE CTL0043/54664 (LD 1
  1653.   #     Compatible device id PNP0600
  1654.   #     ANSI string -->IDE<--
  1655.  
  1656.   # Multiple choice time, choose one only !
  1657.  
  1658.   #     Start dependent functions: priority preferred
  1659.   #       IRQ 10.
  1660.   #             High true, edge sensitive interrupt (by default)
  1661.   # (INT 0 (IRQ 10 (MODE +E)))
  1662.   #       Logical device decodes 16 bit IO address lines
  1663.   #             Minimum IO base address 0x0168
  1664.   #             Maximum IO base address 0x0168
  1665.   #             IO base alignment 1 bytes
  1666.   #             Number of IO addresses required: 8
  1667.   # (IO 0 (BASE 0x0168))
  1668.   #       Logical device decodes 16 bit IO address lines
  1669.   #             Minimum IO base address 0x036e
  1670.   #             Maximum IO base address 0x036e
  1671.   #             IO base alignment 1 bytes
  1672.   #             Number of IO addresses required: 2
  1673.   # (IO 1 (BASE 0x036e))
  1674.  
  1675.   #       Start dependent functions: priority acceptable
  1676.   #       IRQ 11.
  1677.   #             High true, edge sensitive interrupt (by default)
  1678.   # (INT 0 (IRQ 11 (MODE +E)))
  1679.   #       Logical device decodes 16 bit IO address lines
  1680.   #             Minimum IO base address 0x01e8
  1681.   #             Maximum IO base address 0x01e8
  1682.   #             IO base alignment 1 bytes
  1683.   #             Number of IO addresses required: 8
  1684.   # (IO 0 (BASE 0x01e8))
  1685.   #       Logical device decodes 16 bit IO address lines
  1686.   #             Minimum IO base address 0x03ee
  1687.   #             Maximum IO base address 0x03ee
  1688.   #             IO base alignment 1 bytes
  1689.   #             Number of IO addresses required: 2
  1690.   # (IO 1 (BASE 0x03ee))
  1691.  
  1692.   #       Start dependent functions: priority acceptable
  1693.   #       IRQ 10, 11, 12 or 15.
  1694.   #             High true, edge sensitive interrupt (by default)
  1695.   # (INT 0 (IRQ 10 (MODE +E)))
  1696.   #       Logical device decodes 16 bit IO address lines
  1697.   #             Minimum IO base address 0x0100
  1698.   #             Maximum IO base address 0x01f8
  1699.   #             IO base alignment 8 bytes
  1700.   #             Number of IO addresses required: 8
  1701.   # (IO 0 (BASE 0x0100))
  1702.   #       Logical device decodes 16 bit IO address lines
  1703.   #             Minimum IO base address 0x0300
  1704.   #             Maximum IO base address 0x03fe
  1705.   #             IO base alignment 2 bytes
  1706.   #             Number of IO addresses required: 2
  1707.   # (IO 1 (BASE 0x0300))
  1708.  
  1709.   #       Start dependent functions: priority functional
  1710.   #       IRQ 15.
  1711.   #             High true, edge sensitive interrupt (by default)
  1712.   # (INT 0 (IRQ 15 (MODE +E)))
  1713.   #       Logical device decodes 16 bit IO address lines
  1714.   #             Minimum IO base address 0x0170
  1715.   #             Maximum IO base address 0x0170
  1716.   #             IO base alignment 1 bytes
  1717.   #             Number of IO addresses required: 8
  1718.   # (IO 0 (BASE 0x0170))
  1719.   #       Logical device decodes 16 bit IO address lines
  1720.   #             Minimum IO base address 0x0376
  1721.   #             Maximum IO base address 0x0376
  1722.   #             IO base alignment 1 bytes
  1723.   #             Number of IO addresses required: 1
  1724.   # (IO 1 (BASE 0x0376))
  1725.  
  1726.   #     End dependent functions
  1727.   # (ACT Y)
  1728.   ))
  1729.   #
  1730.   # Logical device id CTL0021
  1731.   #
  1732.   # Edit the entries below to uncomment out the configuration required.
  1733.   # Note that only the first value of any range is given, this may be changed if required
  1734.   # Don't forget to uncomment the activate (ACT Y) when happy
  1735.  
  1736.   (CONFIGURE CTL0043/54664 (LD 2
  1737.   #     ANSI string -->WaveTable<--
  1738.  
  1739.   # Multiple choice time, choose one only !
  1740.  
  1741.   #     Start dependent functions: priority preferred
  1742.   #       Logical device decodes 16 bit IO address lines
  1743.   #             Minimum IO base address 0x0620
  1744.   #             Maximum IO base address 0x0620
  1745.   #             IO base alignment 1 bytes
  1746.   #             Number of IO addresses required: 4
  1747.   # (IO 0 (BASE 0x0620))
  1748.  
  1749.   #       Start dependent functions: priority acceptable
  1750.   #       Logical device decodes 16 bit IO address lines
  1751.   #             Minimum IO base address 0x0620
  1752.   #             Maximum IO base address 0x0680
  1753.   #             IO base alignment 32 bytes
  1754.   #             Number of IO addresses required: 4
  1755.   # (IO 0 (BASE 0x0620))
  1756.  
  1757.   #     End dependent functions
  1758.   # (ACT Y)
  1759.   ))
  1760.   #
  1761.   # Logical device id CTL7001
  1762.   #
  1763.   # Edit the entries below to uncomment out the configuration required.
  1764.   # Note that only the first value of any range is given, this may be changed if required
  1765.   # Don't forget to uncomment the activate (ACT Y) when happy
  1766.  
  1767.   (CONFIGURE CTL0043/54664 (LD 3
  1768.   #     Compatible device id PNPb02f
  1769.   #     ANSI string -->Game<--
  1770.   #     Logical device decodes 16 bit IO address lines
  1771.   #         Minimum IO base address 0x0200
  1772.   #         Maximum IO base address 0x0200
  1773.   #         IO base alignment 1 bytes
  1774.   #         Number of IO addresses required: 8
  1775.   # (IO 0 (BASE 0x0200))
  1776.   # (ACT Y)
  1777.   ))
  1778.   # End tag... Checksum 0x00 (OK)
  1779.  
  1780.   99..11..22..  TThhee eeddiitttteedd ccoonnffiigguurraattiioonn ffiillee ffoorr iissaappnnpp..
  1781.  
  1782.   # This is free software, see the sources for details.
  1783.   # This software has NO WARRANTY, use at your OWN RISK
  1784.   #
  1785.   # For details of this file format, see isapnp.conf(5)
  1786.   #
  1787.   # Compiler flags: -DREALTIME -DNEEDSETSCHEDULER
  1788.   #
  1789.   # Edited by jag 27 Jan 1997 to add IO Ports A20 and E20
  1790.   #
  1791.   # Trying port address 0203
  1792.   # Board 1 has serial identifier 0d 00 00 d5 88 43 00 8c 0e
  1793.  
  1794.   (DEBUG)
  1795.   (READPORT 0x0203)
  1796.   (ISOLATE)
  1797.   (IDENTIFY *)
  1798.  
  1799.   # Card 1: (serial identifier 0d 00 00 d5 88 43 00 8c 0e)
  1800.   # CTL0043 Serial No 54664 [checksum 0d]
  1801.   # Version 1.0, Vendor version 1.0
  1802.   # ANSI string -->Creative SB AWE32 PnP<--
  1803.   #
  1804.   # Logical device id CTL0031
  1805.   #
  1806.  
  1807.   (CONFIGURE CTL0043/54664 (LD 0
  1808.   #     ANSI string -->Audio<--
  1809.   <P>
  1810.    (INT 0 (IRQ 5 (MODE +E)))
  1811.   #       First DMA channel 1.
  1812.    (DMA 0 (CHANNEL 1))
  1813.   #       Next DMA channel 5.
  1814.    (DMA 1 (CHANNEL 5))
  1815.    (IO 0 (BASE 0x0220))
  1816.    (IO 1 (BASE 0x0330))
  1817.    (IO 2 (BASE 0x0388))
  1818.   #     End dependent functions
  1819.   (ACT Y)
  1820.   ))
  1821.   #
  1822.   # Logical device id CTL0021
  1823.   #
  1824.  
  1825.   (CONFIGURE CTL0043/54664 (LD 2
  1826.   #     ANSI string -->WaveTable<--
  1827.  
  1828.   (IO 0 (BASE 0x0620))
  1829.   (IO 1 (BASE 0x0A20))
  1830.   (IO 2 (BASE 0x0E20))
  1831.  
  1832.   #     End dependent functions
  1833.   (ACT Y)
  1834.   ))
  1835.   #
  1836.   # Logical device id CTL7001
  1837.   #
  1838.   (CONFIGURE CTL0043/54664 (LD 3
  1839.   #     Compatible device id PNPb02f
  1840.   #     ANSI string -->Game<--
  1841.   (IO 0 (BASE 0x0200))
  1842.   (ACT Y)
  1843.   ))
  1844.   # End tag... Checksum 0x00 (OK)
  1845.  
  1846.   99..11..33..  AAnn eexxttrraacctt ooff tthhee bboooottuupp ssccrriipptt ttoo ccoonnffiigguurree ssoouunndd..
  1847.  
  1848.        #######################################################################
  1849.        #  Add local action for palis.athena.inc               27 Jan 1997  jag
  1850.        #  SoundBlaster AWE 32 pnp initlization
  1851.        #  Load sound "fonts". NOTE: the synthgs.sbk from the SB install CDROM
  1852.        #  Load sound.o module. This should be loaded before the "fonts".
  1853.        #######################################################################
  1854.  
  1855.        if [ -f /sbin/isapnp ]; then
  1856.                echo "Initializing the SouncBlaster AWE 32 pnp:"
  1857.                /sbin/isapnp /etc/isapnp.conf > /dev/null
  1858.        else
  1859.                echo "No pnp initialization code available.:
  1860.                exit 1
  1861.        fi
  1862.        #
  1863.        # According to Takashi IWAI, modprobe must come before sfxload
  1864.        #
  1865.        /sbin/modprobe -a sound
  1866.  
  1867.        if [ -f /usr/local/bin/sfxload ]; then
  1868.                echo "Loading Sound Fonts for General Midi:"
  1869.                /usr/local/bin/sfxload -Ii /usr/local/lib/awe/synthgs.sbk
  1870.        else
  1871.                echo "No Sound Font loading available.:
  1872.        fi
  1873.  
  1874.   99..22..  PPrroobblleemmss wwiitthh tthhee AAzztteecchh SSoouunndd GGaallaaxxyy 1166 IIIIII--33DD PPnnPP ssoouunndd ccaarrdd..
  1875.  
  1876.   Stefan Markgraf has reported being unable to get the 16 bit MSS
  1877.   compatibility working with this card (Jul 97), and ended up changing
  1878.   it for a AWE64.  The 8-bit Sound Blaster pro compatibility, MPU-401
  1879.   and OPL-3 functions work fine.
  1880.  
  1881.   99..33..  CCDD ssoouunndd ddooeessnn''tt wwoorrkk ((oonnee cchhaannnneell oorr nnoo cchhaannnneellss))..
  1882.  
  1883.   There are two orientations for the CD player sound-card signals, try
  1884.   reversing the connector on the sound card if the CD player sound
  1885.   doesn't work. (From an email from kjcox@students.wisc.edu).
  1886.  
  1887.        After much fiddling, I finally got it to work but in the
  1888.        strangest manner.  I reversed the cable from the CD-ROM to
  1889.        the sound card 180 degrees while the computer was up and
  1890.        running.  I had to first remove the white box on the sound
  1891.        card into which the cable fits.  I tried it both ways and
  1892.        then when I put it back while the computer was running (hey,
  1893.        I got desperate) it suddenly decided to work.  It took
  1894.        awhile though to get there.
  1895.  
  1896.        Anyway, something to add to your FAQ.  Try removing the
  1897.        white box and reversing the cord.  You can either turn the
  1898.        box around or switch it altogether.
  1899.  
  1900.   99..44..  WWhhaatt ttoo ddoo aabboouutt ""ssbb:: IInntteerrrruupptt tteesstt oonn IIRRQQ1100 ffaaiilleedd -- ddeevviiccee
  1901.   ddiissaabblleedd..""
  1902.  
  1903.   This kernel message means that the sound driver couldn't get an
  1904.   interrupt from the sound card on the channel you told it to use. This
  1905.   could be due to the soundcard using a different interrupt, or more
  1906.   than one device trying to use the same interrupt.
  1907.  
  1908.   I get this one too. I managed to get rid of it by changing the
  1909.   preallocated ISA interrupts in the BIOS but, unfortunately, when I got
  1910.   the sound working, all the other PnP stuff stopped working. In my
  1911.   case, the sound is built into the motherboard, and there seems to be
  1912.   no way to configure it directly in the BIOS, so it's guesswork to try
  1913.   to find the interrupt allocation. If I had Win95, it might be possible
  1914.   to find it by looking at the Win95 allocation. This is where an ESCD
  1915.   BIOS interface would be useful - any takers ?
  1916.  
  1917.   1100..  MMooddeemmss..
  1918.  
  1919.   These are the easiest PnP devices to get installed, due to the ability
  1920.   to configure devices (using _s_e_t_s_e_r_i_a_l) after the kernel has booted.
  1921.   This allows experiments to be made with the settings without having to
  1922.   reboot.
  1923.  
  1924.   There are a few gotchas though:
  1925.  
  1926.   Beware of products using phrases such as "Winmodem" or "Specially
  1927.   designed to work with Windows or Windows 95". These may well not work
  1928.   as standalone products, and require the driver provided with Windows
  1929.   to work.
  1930.  
  1931.   In a similar way some newer modems may not have the DSP code builtin,
  1932.   but rely on a program during boot to download the code into them.
  1933.   These will work in Linux if it is booted after running DOS/Windows,
  1934.   but they won't work directly after a power up into Linux.
  1935.  
  1936.   Watch out for PCI modems. These often don't have UARTs, and so will
  1937.   require a special driver to work with Linux. (They cannot be
  1938.   configured using isapnptools anyway, the BIOS will have done it).
  1939.  
  1940.   1100..11..  GGeenneerraall..
  1941.  
  1942.   See the file  <README.modules> in the distribution for an example of
  1943.   how to get a PnP modem card running.
  1944.  
  1945.   See also the Serial-HOWTO available from MetaLab
  1946.   <ftp://MetaLab.unc.edu/pub/Linux/docs/HOWTO/Serial-HOWTO> or from
  1947.   TSX-11 <ftp://tsx-11.mit.edu/pub/linux/docs/HOWTO/Serial-HOWTO>, or
  1948.   from their respective mirrors.
  1949.  
  1950.   1100..22..  II''vvee ggoott aa WWiinnMMooddeemm,, aanndd II''vvee ffoolllloowweedd aallll tthhee iinnssttrruuccttiioonnss,,
  1951.   bbuutt iitt ssttiillll ddooeessnn''tt wwoorrkk..
  1952.  
  1953.   Unfortunately, a "WinModem" is only half a modem. A significant
  1954.   proportion of the modem functionality is in the Windows driver, which
  1955.   is not present when trying to use it with Linux.
  1956.   The easiest solution at present is to take it back and get a
  1957.   traditional type of modem which can be used on Unix systems. (Of
  1958.   course, if you have the ability, inclination, and required technical
  1959.   information, I'm sure there are many who would like to see a Linux
  1960.   driver for these beasts).
  1961.  
  1962.   1100..33..  II''vvee ggoott aa PPCCII mmooddeemm -- wwhhaatt aabboouutt tthhaatt ??
  1963.  
  1964.   PCI modems are generally winmodems. So see above.
  1965.  
  1966.   In any event isapnptools won't do anything for you.
  1967.  
  1968.   1100..44..  II''vvee ggoott aa mmooddeemm tthhaatt wwoorrkkss iinn DDOOSS aanndd WWiinnddoowwss,, bbuutt nnoott LLiinnuuxx..
  1969.  
  1970.   It may be that the card needs DSP code downloading onto it before
  1971.   it'll work. This can sometimes be done by booting via DOS and loadlin.
  1972.  
  1973.   1100..55..  II''vvee ccoonnffiigguurreedd tthhee ddeevviiccee,, bbuutt iitt iiss rreeaallllyy SSLLOOWW..
  1974.  
  1975.   Very slow activity can be due to interrupt clashes. When the program
  1976.   that uses the port is running, what does proc/interrupts/ say ? If the
  1977.   interrupt count is always 0 for the serial port, you probably have a
  1978.   hardware clash with two devices using the same interrupt line. Check
  1979.   your BIOS PCI settings for preallocated interrupt lines too.
  1980.  
  1981.   If this is the case, reassign the interrupts so that they no longer
  1982.   clash.
  1983.  
  1984.   1100..66..  II''vvee ccoonnffiigguurreedd tthhee ddeevviiccee,, bbuutt iitt ddooeessnn''tt wwoorrkk..
  1985.  
  1986.   Try running your modem communication program under strace to see what
  1987.   it is doing.
  1988.  
  1989.   1100..77..  WWhhaatt''ss tthhiiss aabboouutt nnoott uussiinngg //ddeevv//ccuuaa11 ??
  1990.  
  1991.   It's just something I've read in the mgetty+sendfax documentation. The
  1992.   two devices behave differently on file open, and were intended for
  1993.   dealing with modems set to auto answer. If you want to send faxes
  1994.   and/or allow dialing in, I suggest you get and install mgetty+sendfax,
  1995.   it includes an email from the writer of the serial device driver on
  1996.   why only ttySx should be used. I've seen hints that the cuax devices
  1997.   may be going in future kernels.
  1998.  
  1999.   The mgetty program listens to the modem and answers it manually, thus
  2000.   preventing a wasted call which would have occurred with an auto-answer
  2001.   modem and crashed computer.
  2002.  
  2003.   1100..88..  HHooww ccaann II cchheecckk tthhee mmooddeemm iiss wwoorrkkiinngg ??
  2004.  
  2005.   I use cu to talk to the modem. It replies with OK when I type <cr>.
  2006.   After a few transfers like this, check /proc/interrupts has increased
  2007.   by the number of characters transferred. If it hasn't, there is a
  2008.   resource clash, so try another interrupt. Note that IRQ3 and IRQ4 are
  2009.   almost guaranteed to be used by the motherboard, so don't use these
  2010.   for PnP modems.
  2011.  
  2012.   1100..99..  TThhuunnddeerrlliinnkk mmooddeemmss ((PPCCTT33888800))..
  2013.  
  2014.   It has been reported that thunderlink modems are not supported for
  2015.   linux or DOS. It gives the following identification:
  2016.  
  2017.   PCT3880/0[0]{PC-TEL HSP K56FLEX PNP D/F/V MODEM}
  2018.  
  2019.   1100..1100..  UUSSRR RRoobboottiiccss SSppoorrttsstteerr..
  2020.  
  2021.   If it has jumpers, use them to set the device settings if you can't
  2022.   get PnP configuration to work.
  2023.  
  2024.   1111..  NNeettwwoorrkk ccaarrddss..
  2025.  
  2026.   See the file  <README.modules> in the distribution for an example of
  2027.   how to get a PnP ethernet card running, using a loadable kernel module
  2028.   driver.
  2029.  
  2030.   See also the Ethernet-HOWTO available from MetaLab
  2031.   <ftp://MetaLab.unc.edu/pub/Linux/docs/HOWTO/Ethernet-HOWTO> or from
  2032.   TSX-11 <ftp://tsx-11.mit.edu/pub/linux/docs/HOWTO/Ethernet-HOWTO>, or
  2033.   from their respective mirrors.
  2034.  
  2035.   1111..11..  TThhee ccaarrdd ssuuppppoorrttss nnoonn PPnnPP ccoonnffiigguurraattiioonn..
  2036.  
  2037.   If the network card supports jumperless mode (fix the card's
  2038.   configuration using a DOS program that comes with it), or has jumpers
  2039.   to disable PnP mode and configure the device; if PnP settings don't
  2040.   work, the simplest thing to do is to configure the card in jumperless
  2041.   (non PnP) mode, or using the jumpers, to a fixed address and interrupt
  2042.   (I use 0x340 and IRQ10).
  2043.  
  2044.   In the BIOS, assign IRQ10 to legacy ISA. If you have other PnP devices
  2045.   which require configuring, remember to add the network card resources
  2046.   used to the /etc/isapnp.gone file.
  2047.  
  2048.   Build the network driver as a module, then load it during bootup with
  2049.   commands such as (for my NE2000 clone for example):
  2050.  
  2051.   # # And the network card # MODULESDIR="/usr/src/linux.`uname
  2052.   -r`.pf/modules" rm /modules ln -s $MODULESDIR /modules insmod
  2053.   $MODULESDIR/8390.o insmod $MODULESDIR/ne.o io=0x340
  2054.  
  2055.   This method won't require isapnp to configure the network card (in
  2056.   fact, isapnp won't be able to see it).
  2057.  
  2058.   1122..  IIDDEE ppoorrttss..
  2059.  
  2060.   See the file  <README.ide> in the distribution for some ideas on how
  2061.   to get a PnP IDE interface running. These are often found on sound
  2062.   cards.
  2063.  
  2064.   If you are running a 2.1.x kernel, it is apparently possible to rescan
  2065.   the IDE interface after boot up, but only if no devices are in use on
  2066.   that controller.
  2067.  
  2068.   Have a look at archive/latest/872 on the pnp-list archives.
  2069.  
  2070.   1133..  DDiissccllaaiimmeerrss eettcc..
  2071.  
  2072.   Information is provided AS IS. No guarantee of accuracy or usefulness
  2073.   is provided.
  2074.  
  2075.   There is no intention to provide legal advice in this document either.
  2076.   If you think there is some, I assure you there isn't, I suggest you
  2077.   seek local advice.
  2078.  
  2079.   (R) Linux is a registered trademark of Linux Torvalds.
  2080.  
  2081.   Other trademarks are the property of their respective owners.
  2082.  
  2083.